home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
tools
/
dfue
/
cat_utis
/
io_conv
/
io_conv.doc
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1995-11-25
|
122KB
|
3,498 lines
@subject "Dokumentation/Utilities"
@database "IO-Converter Anleitung"
@author "Markus Kohm"
@$VER: io_conv.hyp 2.40
(04/09/95)
#%format latex
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#% IO-Converter-Anleitung
#% Copyright (c) Markus Kohm, 1995
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#\documentclass[DIV12,10pt,twoside]{scrreprt}
#\usepackage{german}
#\usepackage[T1]{fontenc}
#\title{IO-Converter 2.40$\beta$}
#\author{Markus Kohm}
#\date{4. September 1995}
#\pagestyle{headings}
#\newcommand*{\cmd}[1]{\texttt{\symbol{92}#1}}
#\setcounter{tocdepth}{5}
#\setcounter{secnumdepth}{3}
#\begin{document}
#\maketitle
#\tableofcontents
1 Allgemeines
? Allgemeines
Hier folgen die
blichen Anmerkungen, wobei ich darum bitte, da
diese
`komplett` und `gr
ndlich` durchgelesen werden (insbesondere das Kapitel
"Rechtliches")!
2 Vorwort
? Vorwort
Vor einiger Zeit h
uften sich in der MAUS-Gruppe "MT.CAT" die Fragen, ob
man mit CAT nicht individuell f
r einzelne Empf
nger oder Gruppen eine
Umlautwandlung aktivieren k
nnte. Die Gr
nde f
r diese W
nsche waren
vielf
ltig, dennoch konnte sich Dirk Steins, der Autor von CAT, nicht
dazu entschlie
en, soetwas zu implementieren.
Aus diesem Grund habe ich irgendwann angefangen, einen solchen
selektiven Umlautwandler als CAT-I/O-Filter zu schreiben. Als ich schon
bei der Arbeit war, kamen rasch weitere Probleme und W
nsche hinzu. So
stellte ich bei einer fr
heren CAT-Version fest, da
bei sehr langen
Mails pl
tzlich Null-Bytes in den Texten erschienen. Also baute ich
einen Filter f
r Control-Zeichen ein. Unter gewissen Umst
nden wurden
von anderen Filtern Tabulatorzeichen in Infiles geschrieben, mit denen
die Maus nichts anfangen kann. Also baute ich eine Wandlung f
Tabulatoren ein.
Da CAT auch den Zeilenumbruch nicht selektiv verwalten und einmal
eingef
gte Mails nicht neu umbrechen kann, gab es z.B. mit PGP-Mails
teilweise Probleme beim Zeilenumbruch. Also baute ich einen
Zeilenumbruch ein.
Irgendwann reichte der einfache Stringfilter in der Einser-Version von
IO-Converter nicht mehr aus. Au
erdem gab es von Anfang an Probleme mit
dem Pattern-Match-Algorithmus von IO-Converter. Also setzte ich mich
wieder an meinen Rechner und begann eine v
llig neue Version. Diese
arbeitet nun mit regul
ren Ausdr
cken. Diese Version ist u.a. aus diesem
Grund aber auch wegen diverser Vereinfachungen und Erweiterungen nicht
mehr zur Einser-Version kompatibel.
2 Rechtliches
? Rechtliches
Alle Teile dieses Pakets d
rfen frei, aber nur frei weitergegeben und
vertrieben werden. Frei bedeutet dabei, da
dem Weitergebenden bzw.
Vertreiber aus der Weitergabe bzw. dem Vertrieb kein Gewinn entstehen
darf.
Der Upload in Mailboxen, ftp-Server und
hnliche Medien ist gestattet,
wenn der Download aus diesen Boxen, Servern oder sonstigen Medien
kostenlos m
glich und erlaubt ist.
Das Paket darf nur vollst
ndig, also mit allen zugeh
rigen Teilen, und
unver
ndert weitergegeben bzw. vertrieben werden. Der Autor beh
lt sich
r jeden Vertriebsweg ein Vetorecht vor. Macht der Autor von diesem
Vetorecht Gebrauch, so ist der weitere Vertrieb auf dem entsprechenden
Wege untersagt und einzustellen. Dies gilt auch f
r Weitergabe auf
nichtkommerziellen Wegen, soweit nicht gesonderte Regelungen `schriftlich`
vereinbart wurden.
Der Autor lehnt jegliche Gew
hrleistung und Haftung im Rahmen der
gesetzlichen M
glichkeiten ab. Die Verwendung aller Teile des Pakets
erfolgt auf eigene Gefahr des Anwenders. Zwar habe ich mich bem
Programme und Anleitung m
glichst fehlerfrei zu bekommen, jedoch ist
absolute Korrektheit bei der Komplexit
t des Programms und der Anleitung
nahezu unm
glich. Fehlfunktionen, insbesondere aber nicht ausschlie
zusammen mit Fehlbedienung, sind m
glich.
2 Autor, Ansporn, Fehler
? Autor
? Ansporn
Sollte jemand Fehler in diesem Paket finden (siehe die Hinweise zum
Outputlevel), so ist er ausdr
cklich aufgefordert, mir diese zu melden.
Erreichbar bin ich per
#\begin{labeling}{\textbf{MausNet:}}
#\item[MausNet:] Markus Kohm @ KA2
#\item[Post:] \begin{flushleft}
# Markus Kohm\\
# Augartenstra"se 29\\
# 76137 Karlsruhe
#\end{flushleft}\end{labeling}
MausNet: Markus Kohm @@ KA2
Post: Markus Kohm
Augartenstra
76137 Karlsruhe
Bei W
nschen und Vorschl
gen kann man sich ebenfalls an mich wenden.
Ich kann aber nicht versprechen, da
diese auch umgesetzt werden.
Da das gesamte Paket in meiner knappen Freizeit entsteht, hat vielleicht
jemand den Wunsch, mir mit einer kleinen Spende die Weiterentwicklung
schmackhaft zu machen oder einfach nur zu danken:
#\begin{quote}\begin{flushleft}
# Markus Kohm\\
# Konto: 995\,894\\
# Sparda Bank Karlsruhe: 660\,905\,00
#\end{flushleft}\end{quote}
Markus Kohm
Konto: 995 894
Sparda Bank Karlsruhe: 660 905 00
Jedenfalls w
nsche ich erfolgreiches Schaffen!
2 Danksagung
? Danksagung
Ich danke Andreas Schrell und Richard Kampmann f
r ihre Unterst
tzung,
Anregung und ausf
hrliche Kritik, bei Richard au
erdem f
r seine
erordentliche Geduld.
1 Der IO-Converter
? Der IO-Converter
Der IO-Converter ist als I/O-Filter f
r CAT entstanden. Da der
IO-Converter In- und Outfiles bearbeitet, kann er aber zumindest
theoretisch auch mit anderen MausTausch-Programmen verwendet werden.
Die Installation des IO-Converters f
r CAT ist in einem der
nachfolgenden Kapitel beschrieben. F
r die Automatisierung mit anderen
MausTausch-Programmen kann z.B. das Programm CATAUSCH verwendet werden.
2 Die Funktion
? Die Funktion
Der IO-Converter wird normalerweise als I/O-Filter f
r CAT installiert.
Alternativ kann er aber auch in einem Tausch-Script eingesetzt werden.
IO-Converter wirkt direkt auf das In- bzw. das Outfile. IO-Converter ist
in der Lage, Zeichen und Strings innerhalb von In- bzw. Outfile-Bl
zu ersetzen. In welchen Bl
cken was ersetzt wird, kann spezifisch
definiert werden. Hierzu dient eine Filterdatei. Der Aufbau dieser Datei
ist dem Kapitel Filterdatei zu entnehmen.
IO-Converter kann z.B. dazu verwendet werden, den Zeichensatz insgesamt
zu konvertieren. N
tzlich kann dies z.B. sein, wenn man mit mehreren
unterschiedlichen Rechnern an einer Maus oder Quark arbeitet und immer
die richtigen Umlaute haben will. Man stellt dann die Umlaute ein, die
man online verwendet und l
t die Umlaute im In- und Outfile f
r den
Mail-Rechner konvertieren.
IO-Converter kann auch dazu verwendet werden, verschiedene Signaturen,
Begr
ungen oder Footer auszuw
hlen und anzuh
ngen sowie den
Zeilenumbruch zu
bernehmen, wobei er im Gegensatz zum Umbruch in der
Maus auch Quotes ber
cksichtigen kann.
Alle Funktionen des IO-Converters k
nnen abh
ngig vom Empf
nger bzw. der
Gruppe oder auch dem Mailtextes konfiguriert werden.
Siehe dazu die Beispielfilterdatei "infile.cnf" und die
Beispielnicknamedatei "nickname.nik".
2 Aufruf
? Aufruf
IO-Converter versteht verschiedene optionale Parameter und erwartet als
weiteren Parameter den Namen der zu konvertierenden Datei:
io_conv.ttp [-T] [-f @{I}Filterdatei@{i}] [-O @{I}Outputlevel@{i}]
[-n @{I}Nicknamedatei@{i}] @{I}Datei@{i} [[1|2]>[>]@{I}Ausgabedatei@{i}]
#\begin{labeling}{\texttt{io\_conv.ttp}}
#\item[\texttt{io\_conv.ttp}] \texttt{[-T]} \texttt{[-f \emph{Filterdatei}]}
# \texttt{[-O \emph{Outputlevel}]}
# \texttt{[-n \emph{Nicknamedatei}]}\hfill\\
# \emph{Datei}
# \texttt{[[1|2]>[>]\emph{Ausgabedatei}]}
#\end{labeling}
Die Reihenfolge der Parameter ist beliebig. Die Bedeutung im einzelnen:
Normalerweise verwendet IO-Converter als Filterdatei die Datei
"io_conv.cnf" im aktuellen Verzeichnis. Mit dem Parameter -f `Filterdatei`
kann eine andere Filterdatei angegeben werden. Damit ist es z.B. m
glich
r In- und Outfile unterschiedliche Filterdateien zu verwenden.
Mit dem Parameter -n `Nicknamedatei` kann die Datei zur Konfiguration
der Nicknames (Spitznamen) definiert werden. Fehlt dieser Parameter, so
wird daf
r "nickname.nik" angenommen.
Der `Outputlevel` gibt an, welche Ausgaben get
tigt werden sollen und
welche unterdr
ckt werden.
Wohin die Ausgabe get
tigt wird, kann
ber den letzten Parameter
festgelegt werden. Mit einer zus
tzlichen 1 vor dem ersten Gr
erzeichen
wird nur die Standardausgabe umgelenkt. Mit einer zus
tzlichen 2 vor dem
ersten Gr
erzeichen wird stattdessen nur die Fehlerausgabe umgelenkt.
Ist keine genauere Angabe vorhanden, so werden sowohl Standardausgabe
als auch Fehlerausgabe umgelenkt. Werden zwei aufeinanderfolgende
erzeichen verwendet, so wird an die angegebene `Ausgabedatei`
angeh
ngt, sonst wird sie
berschrieben.
Der Parameter `-T` stellt einen Sonderfall dar. Wenn er angegeben ist,
werden lediglich die Parameter
berpr
ft, Filterdatei und Nicknamedatei
geladen und interpretiert und angegeben, welche Datei gefiltert w
Die Filterung selbst findet nicht statt. Bei Verwendung des Parameters
ist au
erdem keine Ausgabeumlenkung m
glich. Fehler f
hren im Testmodus
nicht zu einem Abbruch. Parameter, die vor `-T` stehen, werden jedoch
nicht im Testmodus
berpr
ft und k
nnen somit auch zu einem Abbruch
hren.
Dadurch da
IO-Converter selbst die Ausgabeumlenkung vornehmen kann,
kann die Ausgabe auch bei einem Aufruf aus CAT umgelenkt werden. Damit
wurde die bisher verwendete LOG-Datei
berfl
ssig.
3 Der Outputlevel
? Outputlevel
Mit der Parameteroption "-O `Outputlevel`" (es handelt sich hier um den
buchstaben "O") k
nnen verschiedene Ausgaben von IO-Converter ein-
und ausgeschaltet werden. Beim `Outputlevel` handelt es sich um einen
Zahlenwert, wobei jedem Bit eine oder mehrere Ausgaben zugeordnet sind:
@#|l|p{.8\textwidth}|
#\hline
#Bit & Bedeutung\\\hline
#0 & unspezifiziert\\
#1 & Warnung bei automatischen Anreden ohne erkennbare Namen\\
#2 & Warnung bei
berschreiten der maximalen Mail-L"ange von
# 16000 Byte\\
#3 & Warnung bei offensichtlich fehlerhafter Filterung\\
#4--14 & unspezifiziert\\
#15 & Debuginformationen\\\hline
Bit | Bedeutung
------|---------------------------------------------------------
0 | unspezifiziert.
1 | Warnung bei automatischen Anreden ohne erkennbare Namen
2 | Warnung bei
berschreiten der maximalen Mail-L
nge von
| 16000 Byte
3 | Warnung bei offensichtlich fehlerhafter Filterung
4-14 | unspezifiziert
15 | Debuginformationen
Eine besondere Bedeutung kommt dem Wert Null zu, bei dem alle Ausgaben
unterdr
ckt werden. Bei allen anderen Werten (auch wenn nur mindestens
ein unspezifiziertes Bit gesetzt ist) erfolgt zumindest ein Hinweis auf
Fehler (in Form einer Fehlernummer), die zu einem Abbruch f
hren. Der
Wert kann dezimal oder hexadezimal mit vorangestelltem "0x"
bergeben
werden.
Die Warnung bei offensichtlich fehlerhafter Filterung wird derzeit
ausgegeben, wenn ein Filter das Zeilenende vor einem zu sch
tzenden
Block oder am Ende einer Mail l
scht. Auch ohne Warnung wird in diesem
Fall wieder ein Zeilenende eingef
@autorefoff
Beispiele:
@autorefon
io_conv.ttp -O 0
schaltet alle Ausgaben aus.
io_conv.ttp -O 0x7FFF
schaltet alle Ausgaben bis auf Debug-Informationen an.
io_conv.ttp -O 1
schaltet nur die Meldung fataler Fehler ein.
io_conv.ttp -O 0xFFFF
schaltet alle Meldungen inclusive Debug-Meldungen ein.
Sollten Fehler bei der Filterung auftreten, so empfehle ich folgendes
Vorgehen:
chst schaltet man alle Meldungen inclusive Debug-Meldungen ein.
Damit kann man dann feststellen, bei welcher MsgID der Fehler auftritt.
Nun versucht man, einen m
glichst kleinen Ausschnitt im In- bzw. Outfile
zu finden, mit dem der Fehler noch auftritt.
Nun versucht man weiter, die Filterdatei soweit zu verkleinern, da
Fehler gerade noch auftritt. Ebenso geht man mit der Nicknamedatei vor.
Sollte man nun zu dem Schlu
kommen, da
die Ursache nicht in einer der
Konfigurationsdateien, sondern bei IO-Converter zu suchen ist, so kann
man mir die minimierten Dateien und die IO-Converter-Ausgabe zusenden
(per Mail, in meinen PPT in KA oder per gelber Post). Dabei auf keinen
Fall vergessen, die verwendete Version von IO-Converter mit anzugeben!
4 Fehlerausgabe und R
ckgabecode
? Fehlernummern und R
ckgabecode
? Fehlernummern
ckgabecode
Derzeit gibt IO-Converter im Falle eines fatalen Fehlers (das sind
Fehler, die zu einem Abbruch f
hren) in der Regel nur eine Fehlernummer
und u.U. einen Verursacher aus. Der urspr
ngliche Grund daf
r war, da
IO-Converter so nicht durch die ganzen Fehlermeldungen aufgebl
ht wird.
Vermutlich wird sich das in einer zuk
nftigen Version aber wieder
ndern. Die entsprechenden Nummern werden au
erdem im Fehlerfall von
IO-Converter an das aufrufende Programm zur
ckgegeben.
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Parameter"ubergabe}\\
#\hline
# 1 & Standardausgabeumleitung nicht m"oglich\\
# 2 & Fehlerausgabeumleitung nicht m"oglich\\
# 3 & Bearbeitungsdatei doppelt angegeben\\
# 4 & Keine Bearbeitungsdatei angegeben\\
# 5 & unbekannter Parameter\\
# 6 & Parameter \texttt{-f} erwartet weiteren Parameter\\
# 7 & Parameter \texttt{-n} erwartet weiteren Parameter\\
# &\\
# 9 & Nicht genug Speicher f"ur diverse Puffer\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Filterdatei lesen}\\
#\hline
# 10 & Dateifehler ("offnen)\\
# 11 & Dateifehler (lesen)\\
# 12 & unbekannter Filtertyp\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Neuer Filter}\\
#\hline
# 20 & Speicher"uberlauf\\
# 21 & Dateifehler\\
# 22 & Zeilenpuffer"uberlauf\\
# 23 & Fehler in regul"arem Ausdruck\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Stringfilter alter Bauart} ("`\texttt{:}"')\\
#\hline
# 30 & Welcher Filter\\
# 31 & Speicherplatz\\
# 32 & Dateifehler\\
# 33 & Zeilen"uberlauf\\
# 34 & "`\texttt{=}"' fehlt\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Zeichenfilter} ("`\texttt{>}"')\\
#\hline
# 40 & Welcher Filter\\
# 41 & Speicherplatz\\
# 42 & Dateifehler\\
# 43 & Zeilen"uberlauf\\
# 44 & Speicherplatz\\
# 45 & "`\texttt{<}"' fehlt\\
# 46 & Dateifehler\\
# 47 & Zeilen"uberlauf\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Filteraktivierung} ("`\texttt{!}"')\\
#\hline
# 50 & Welcher Filter\\
# 51 & Schachtelungstiefe\\
# 52 & Speicherplatz\\
# 53 & Dateifehler\\
# 54 & Zeilen"uberlauf\\
# 55 & Filter nicht gefunden\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Stringfilter neue Bauart} ("`\texttt{\dq}"')\\
#\hline
# 60 & Welcher Filter\\
# 61 & Speicherplatz\\
# 62 & 1. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\
# 63 & 2. Anfangs-"`\texttt{\dq}"' fehlt\\
# 64 & 2. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\
# 65 & Zeilenende fehlt\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Filteroptionen} ("`\texttt{-}"')\\
#\hline
# 80 & Welcher Filter\\
# 81 & Speicherplatz\\
# 82 & Dateifehler\\
# 83 & unbekannte Option\\
# 84 & unzul"assiger Wert\\
#\hline
@#|r|p{.8\textwidth}|
#\hline
# Code & Fehlerursache \emph{Datei bearbeiten}\\
#\hline
# 100 & Umbenennung von \emph{datei}\texttt{.}\emph{extend} in
# \emph{datei}\texttt{.\$\$\$}\\
# 101 & Dateifehler ("offnen)\\
# 102 & Dateifehler (lesen)\\
# &\\
# 110 & aus Syntaxgr"unden weder Infile noch Outfile\\
# 111 & Zeilenpuffer"uberlauf\\
# 112 & Zwei "`\texttt{V}"'-Zeilen (Von User),
# "`\texttt{A}"'-Zeilen (An User),
# "`\texttt{G}"'-Zeilen (Gruppe)\\
# 113 & ID, Username, Gruppenname, Textzeile zu lang\\
# 114 & Auf eine Textzeile folgt kein neuer Block\\
# &\\
# 120 & Fehler beim Zuladen einer Datei\\
# &\\
# 150 & Textzeile wird durch Konvertierung zu lang\\
# &\\
# 201 & Dateifehler (erzeugen)\\
# 250 & Dateifehler (schreiben)\\
# 299 & Dateifehler (schreiben beim Schlie"sen)\\
#\hline
Code | Fehlerursache
------|-------------------------------------------------------
| Parameter
bergabe:
1 | Standardausgabeumleitung nicht m
glich
2 | Fehlerausgabeumleitung nicht m
glich
3 | Bearbeitungsdatei doppelt angegeben
4 | Keine Bearbeitungsdatei angegeben
5 | unbekannter Parameter
6 | Parameter -f erwartet weiteren Parameter
7 | Parameter -n erwartet weiteren Parameter
|
9 | Nicht genug Speicher f
r diverse Puffer
------|-------------------------------------------------------
| Filterdatei lesen:
10 | Dateifehler (
ffnen)
11 | Dateifehler (lesen)
12 | unbekannter Filtertyp
------|-------------------------------------------------------
| Neuer Filter:
20 | Speicher
berlauf
21 | Dateifehler
22 | Zeilenpuffer
berlauf
23 | Fehler in regul
rem Ausdruck
------|-------------------------------------------------------
| Stringfilter alter Bauart: (":")
30 | Welcher Filter
31 | Speicherplatz
32 | Dateifehler
33 | Zeilen
berlauf
34 | "=" fehlt
------|-------------------------------------------------------
| Zeichenfilter: (">")
40 | Welcher Filter
41 | Speicherplatz
42 | Dateifehler
43 | Zeilen
berlauf
44 | Speicherplatz
45 | "<" fehlt
46 | Dateifehler
47 | Zeilen
berlauf
------|-------------------------------------------------------
| Filteraktivierung: ("!")
50 | Welcher Filter
51 | Schachtelungstiefe
52 | Speicherplatz
53 | Dateifehler
54 | Zeilen
berlauf
55 | Filter nicht gefunden
------|-------------------------------------------------------
| Stringfilter neue Bauart: ('"')
60 | Welcher Filter
61 | Speicherplatz
62 | 1. End-'"' fehlt oder Zeilen
berlauf
63 | 2. Anfangs-" fehlt
64 | 2. End-'"' fehlt oder Zeilen
berlauf
65 | Zeilenende fehlt
------|-------------------------------------------------------
| Filteroptionen: ("-")
80 | Welcher Filter
81 | Speicherplatz
82 | Dateifehler
83 | unbekannte Option
84 | unzul
ssiger Wert
------|-------------------------------------------------------
| Datei bearbeiten:
100 | Umbenennung von <datei>.<extend> in <datei>.$$$
| fehlgeschlagen
101 | Dateifehler (
ffnen)
102 | Dateifehler (lesen)
|
110 | aus Syntaxgr
nden weder Infile noch Outfile
111 | Zeilenpuffer
berlauf
112 | Zwei "V"-Zeilen (Von User), "A"-Zeilen (An User),
| "G"-Zeilen (Gruppe)
113 | ID, Username, Gruppenname, Textzeile zu lang
114 | Auf eine Textzeile folgt kein neuer Block
|
120 | Fehler beim Zuladen einer Datei
|
150 | Textzeile wird durch Konvertierung zu lang
|
201 | Dateifehler (erzeugen)
250 | Dateifehler (schreiben)
299 | Dateifehler (schreiben beim Schlie
|
2 Environment
? Environment
IO-Converter verwendet keine Environment-Variablen.
2 Installation
? Installation
IO-Converter kann unterschiedlich installiert werden. Wer ein eigenes
Tausch-Script erstellen kann oder Scripten f
r die Mupfel schreibt, wird
auch leicht in der Lage sein, IO-Converter entsprechend aufzurufen. Im
Folgenden soll deshalb die Installation f
r CAT gesondert beschrieben
werden.
3 Installation als CAT-I/O-Filter
? Installation als CAT-I/O-Filter
IO-Converter kann als I/O-Filter f
r CAT installiert werden.
Erstellen Sie hierzu zun
chst eine Filterdatei f
r Infiles und eine
weitere Filterdatei f
r Outfiles. Gehen Sie dann wie folgt vor:
#\begin{enumerate}
#\item "Offnen Sie in CAT den Dialog \fbox{\strut\texttt{Optionen}}
#\fbox{\strut\texttt{I/O-Filter...}}.
#\item W"ahlen Sie einen freien Eintrag
#(\fbox{\strut\texttt{Nicht installiert}}) aus.
#\item Geben Sie einen Namen, z.B. \texttt{IO-Converter}, ein.
#\item Stellen Sie sicher, da"s bei \texttt{Wof"ur:}
#\fbox{\strut\texttt{~f"ur In/Outfile~}} angegeben ist.
#\item Klicken Sie auf \texttt{Programm: \fbox{\strut~~~~~leer~~~~~}} und
#w"ahlen Sie dann \texttt{io\_conv.ttp} aus.
#\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Infile} an.
#\item Geben Sie die Parameterzeile f"ur das Infile an. Dies k"onnte z.B.
#\begin{verbatim}
# -f infile.cnf $M$F
#\end{verbatim}
#sein.
#\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Outfile} an.
#\item Geben Sie die Parameterzeile f"ur das Outfile an. Dies k"onnte z.B.
#\begin{verbatim}
# -f outfile.cnf $I$O
#\end{verbatim}
#sein.
#\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} aktiv} an.
#\end{enumerate}
1.
ffnen Sie in CAT den Dialog <Optionen|I/O-Filter...>.
2. W
hlen Sie einen freien Eintrag ([Nicht installiert]) aus.
3. Geben Sie einen Namen, z.B. IO-Converter, ein.
4. Stellen Sie sicher, da
bei "Wof
r:" [ f
r In/Outfile ]
angegeben ist.
5. Klicken Sie auf "Programm: [ leer ]" und w
hlen Sie
dann io_conv.ttp aus.
6. Kreuzen Sie den Knopf "[ ] f
r Infile" an.
7. Geben Sie die Parameterzeile f
r das Infile an. Dies k
z.B. "-f infile.cnf $M$F" sein.
8. Kreuzen Sie den Knopf "[ ] f
r Outfile" an.
9. Geben Sie die Parameterzeile f
r das Outfile an. Dies k
z.B. "-f outfile.cnf $I$O" sein.
10. Kreuzen Sie den Knopf "[ ] aktiv" an.
Der Dialog m
te jetzt in etwa so aussehen:
#\begin{center}
#\framebox[.67\textwidth][c]{\parbox{.65\textwidth}{\tt
# \hspace*{\fill}\\
# In- und Outfile-Filter installieren\hfill\\
# \hspace*{\fill}\\
# Filter:~~~~\fbox{\strut~~IO-Converter~~}\fbox{\strut\,$\downarrow$\,}\hfill\\
# \hspace*{\fill}\\
# Name:~~~~~~IO-Converter\underline{~~~~~~}~~~~~~\fbox{\strut\,x\,} aktiv\hfill\\
# \hspace*{\fill}\\
# Programm:~~\fbox{\strut~~IO\_CONV.TTP~~}\hfill\\
# \hspace*{\fill}\\
# Wof"ur:~~~~~\fbox{\strut f"ur In-/Outfile}\fbox{\strut\,$\downarrow$\,}~~~~~\fbox{\strut\,$\downarrow$\,} f"ur Infile\hfill\\
# \hspace*{20em}\fbox{\strut\,$\downarrow$\,} f"ur Outfile\hfill\\
# Kommandozeile f"ur Infile:\hfill\\
# -f infile.cnf \$M\$F\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\
# \hspace*{\fill}\\
# Kommandozeile f"ur Outfile:\hfill\\
# -f outfile.cnf\$I\$O\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\
# \hspace*{\fill}}}
#\end{center}
-----------------------------------------------------------
| |
| In- und Outfile-Filter installieren |
| |
| Filter: [ IO-Converter ][v] |
| |
| Name: IO-Converter________ [x] aktiv |
| |
| Programm: [ IO_CONV.TTP ] |
| |
| Wof
r: [f
r In-/Outfile ][v] [x] f
r Infile |
| [x] f
r Outfile |
| Kommandozeile f
r Infile: |
| -f infile.cnf $M$F_______________________________________ |
| |
| Kommandozeile f
r Outfile: |
| -f outfile.cnf $I$O______________________________________ |
| |
-----------------------------------------------------------
Sollten Sie IO-Converter nur f
r Infiles installieren wollen, so
entfallen Punkt (6) und (7).
Sollten Sie IO-Converter nur f
r Outfiles installieren wollen, so
entfallen Punkt (8) und (9).
Eine Besonderheit tritt ein, wenn Sie neben IO-Converter auch PGP
verwenden wollen. In diesem Fall sollte IO-Converter zweimal installiert
werden, einmal f
r Infiles `vor` dem PGP-Utility, einmal f
r Outfiles
`nach` dem PGP-Utility. Auf diese Weise kann IO-Converter jeweils auf
die unverschl
sselten Nachrichten wirken.
3 Info-Zeilen-Formate in CAT
? Info-Zeilen-Formate in CAT
Ich empfehle, die Formate f
r die beiden Infozeilen in CAT wie folgt
einzustellen:
'* Gruppe: 'G'\015* Name: 'U'\015'
'* An: 'U'\015'
oder:
'* Gruppe: 'G'\015* Name: 'R'\015'
'* An: 'U'\015* Name: 'R'\015'
Bei gleichzeitiger Verwendung von Jelly Cat ab Version 1.1 gen
gt in
jedem Fall ein Format der Form:
'* Name: 'R'\015'
Dabei ist statt "\015" jeweils [CTRL][M] zu dr
cken.
Die Bedeutung der beiden Formate entnehmen Sie bitte dem Kapitel
den Infoblock. Die erste Zeile kann in CAT normalerweise mit [ALT][N],
die zweite mit [ALT][SHIFT][N] erreicht werden. Die erste ist bei
Kommentaren in Gruppen, die zweite bei PM-Kommentaren sinnvoll (solange
CAT Kommentare im Infile anders behandelt als neue Mails).
Eingestellt werden die Formate in CAT im "Optionen"-Men
ber den
punkt "Formate...". N
heres ist dem CAT-Handbuch oder dem
CAT-Hypertext zu entnehmen.
2 Filterdatei
? Filterdatei
Gegen
ber der ersten Version von IO-Converter hat sich der
Aufbau der Filterdatei grundlegend ge
ndert. Aus diesem Grund wurde
auch die Standardendung von "`.dat`" in "`.cnf`" ge
ndert. Die alten
Filterdateien sind nicht mehr kompatibel, k
nnen jedoch mit wenigen
nderungen in das neue Format gebracht werden. Betroffen ist nur das
Pattern-Matching (die Platzhalter, die verwendet werden konnten). Dieses
wurde durch "Regul
re Ausdr
cke" ersetzt, die wesentlich m
chtiger sind.
3 Regul
re Ausdr
? Regul
re Ausdr
? regul
re Ausdr
? regul
rer Ausdruck
? regul
rem Ausdruck
Der regul
re Ausdruck beschreibt ein zu suchendes Muster. Dabei sind
verschiedene Sonderzeichen m
glich, die f
r andere Zeichen bzw. eine
ganze Reihe anderer Zeichen stehen.
@#|l|p{.8\textwidth}|
#\hline
"." Der Punkt steht f
r ein beliebiges Zeichen.
#\texttt{.} &
# Der Punkt steht f"ur ein beliebiges Zeichen.\\\hline
"^" Das Caret steht f
r den Zeilenanfang. Dies wird derzeit
nicht ausgewertet, mu
aber gequotet werden (s.u.).
#\texttt{\symbol{94}} &
# Das Caret steht f"ur den Zeilenanfang. Dies wird derzeit
# nicht ausgewertet, mu
aber gequotet werden (s.u.).\\\hline
"$" Das Dollarzeichen steht f
r das Zeilenende.
#\texttt{\$} &
# Das Dollarzeichen steht f"ur das Zeilenende.\\\hline
"\" Der Backslash dient dem Quoten einzelner Zeichen. Um z.B.
das "."-Zeichen selbst darstellen zu k
nnen, schreiben Sie
"\."; ebenso "\\", "\^", "\$". Sonderzeichen m
grunds
tzlich gequotet werden.
#\texttt{\symbol{92}} &
# Der Backslash dient dem Quoten einzelner Zeichen. Um z.B.
# das "`\texttt{.}"'-Zeichen selbst darstellen zu k"onnen,
# schreiben Sie "`\texttt{\symbol{92}.}"'; ebenso
# "`\texttt{\symbol{92}\symbol{92}}"',
# "`\texttt{\symbol{92}\symbol{94}}"',
# "`\texttt{\symbol{92}\$}"'. Sonderzeichen m"ussen grunds"atzlich
# gequotet werden.\\\hline
"*" Wenn einem Zeichen ein "*" folgt, bedeutet das, da
letzte Zeichen beliebig oft (auch gar nicht) auftreten
darf.
#\texttt{*} &
# Wenn einem Zeichen ein "`\texttt{*}"' folgt, bedeutet
# das, da"s das letzte Zeichen beliebig oft (auch gar nicht)
# auftreten darf.\\\hline
"+" Wie "*", jedoch mu
das letzte Zeichen mindestens einmal
auftreten.
#\texttt{+} &
# Wie "`\texttt{*}"', jedoch mu
das letzte Zeichen mindestens
# einmal auftreten.\\\hline
"?" Wie "*", jedoch darf das letzte Zeichen h
chstens einmal
auftreten.
#\texttt{?} &
# Wie "`\texttt{*}"', jedoch darf das letzte Zeichen h"ochstens
# einmal auftreten,\\\hline
"|" Der regul
re Ausdruck links davon oder rechts davon mu
zutreffen (z.B. trifft "abc|xyz" sowohl auf "abc" als auch
auf "xyz", nicht jedoch auf "abz" zu).
#\texttt{\symbol{124}} &
# Der regul"are Ausdruck links davon oder rechts davon mu
# zutreffen. (z.B. trifft "`\texttt{abc\symbol{124}xyz}"' sowohl
# auf "`\texttt{abc}"' als auch auf "`\texttt{yxz}"', nicht
# jedoch auf "`\texttt{abz}"' zu).\\\hline
"[]" Zeichensatz.
Eine Zeichenkette in eckigen Klammern steht f
r genau
diese Zeichen, aber keine anderen. Wenn das erste Zeichen
ein Caret ist, steht der Zeichensatz f
r alle Zeichen
au
er den angegebenen.
@autorefoff
Beispiele:
@autorefon
"[xyz]" steht f
r "x" oder "y" oder "z",
"[^xyz]" steht f
r alles au
er "x", "y" oder "z"
Ein Zeichenbereich kann durch "-" angegeben werden:
"[a-z]" steht f
r alle Kleinbuchstaben,
"[0-9]" steht f
r alle Ziffern,
"[0-9a-fA-F]" steht f
r alle Hexadezimalzeichen,
Achtung:
"[z-a]" steht f
r gar nichts!
#\texttt{[\,]} & Zeichensatz.\newline
# Eine Zeichenkette in eckigen Klammern steht f"ur genau
# diese Zeichen, aber keine anderen. Wenn das erste Zeichen
# ein Caret ist, steht der Zeichensatz f"ur alle Zeichen
# au"ser den angegebenen.\newline
# Beispiele:
# \begin{description}
# \item["`\texttt{[abc]}"'] steht f"ur "`\texttt{a}"' oder
# "`\texttt{b}"' oder "`\texttt{c}"',
# \item["`\texttt{[\symbol{94}abc]}"'] steht f"ur alles au"ser
# "`\texttt{a}"',
# "`\texttt{b}"' oder
# "`\texttt{c}"'
# \end{description}
# Ein Zeichenbereich kann durch "`\texttt{-}"' angegeben werden:
# \begin{description}
# \item["`\texttt{[a-z]}"'] steht f"ur alle Kleinbuchstaben,
# \item["`\texttt{[0-9]}"'] steht f"ur alle Ziffern,
# \item["`\texttt{[0-9a-fA-F]}"'] steht f"ur alle Hexadezimalzeichen,
# \end{description}~\newline
# Achtung:
# \begin{description}
# \item["`\texttt{[z-a]}"'] steht f"ur gar nichts!
# \end{description}\\\hline
"()" Ein Ausdruck in runden Klammern stellt einen Unterbereich dar.
Unterbereiche sind z.B. zusammen mit "|" n
tzlich (z.B. steht
"(begin|end) +.*" f
r alles, was mit "begin" oder "end",
gefolgt von mindestens einem Leerzeichen anf
ngt).
#\texttt{()} &
# Ein Ausdruck in runden Klammern stellt einen Unterbereich dar.
# Unterbereiche sind z.B. zusammen mit "`\texttt{\symbol{124}}"'
# n"utzlich (z.B. steht "`\texttt{(begin|end) +.*}"' f
r alles,
# was mit "`\texttt{begin}"' oder "`\texttt{end}"', gefolgt von
# mindestens einem Leerzeichen anf"angt).\\\hline
3 Aufbau der Filterdatei
? Filterdateiaufbau
Die Filterdatei besteht aus einzelnen Filterdefinitionen. Jede dieser
Filterdefinitionen wird von einem Schl
sselwort eingeleitet und reicht
bis zum n
chsten Schl
sselwort.
Es gibt sechs Schl
sselw
rter, die unterschiedliche Filter einleiten:
FILTER, ALLE, GRUPPE, PERSON, WEGEN, ZEILE. Au
er dem ALLE-Filter, folgt
auf jedes Schl
sselwort ein Gleichheitszeichen und eine n
Filterspezifikation bzw. ein Filtername.
Die Bedeutung der einzelnen Filter ist den jeweiligen Unterkapiteln zu
entnehmen.
Innerhalb jeder Filterdefinition kann nun eine ganze Reihe von
Filteraktionen definiert werden. Jede Filteraktion ist durch ein
Schl
sselzeichen am Zeilenanfang gekennzeichnet. Eine Besonderheit
stellen dabei Zeilen dar, die mit einem Doppelkreuz (#) oder einem
Semikolon (;) beginnen. Diese Zeilen werden nicht ausgewertet, sondern
stellen Kommentare dar. Leerzeilen werden wie Kommentare behandelt.
Kommentare d
rfen als einziges bereits vor dem ersten Schl
sselwort
stehen.
Die Filter werden sp
ter in zur Definition umgekehrter Reihenfolge
ausgef
hrt, das hei
t, der zuletzt definierte Filter wird als erster,
der zuerst definierte Filter als letzter abgearbeitet.
Alle Zeilen innerhalb der Filterdatei werden als C-Strings
interpretiert.
IO-Converter liegen zwei Beispielfilterdateien "infile.cnf" und
"outfile.cnf" bei, mit denen die Verwendung demonstriert wird.
4 Filteraktionen
? Filteraktionen
er Leerzeilen sind derzeit folgende Zeilen definiert:
@#|l|p{.8\textwidth}|
#\hline
# Zeichen & Aktion\\\hline
#\texttt{\#} & Kommentarzeile\\
#\texttt{;} & Kommentarzeile\\
#\texttt{!} & Aktivierung eines FILTER-Filters\\
#\texttt{?} & Inverse Aktivierung eines FILTEr-Filters\\
#\texttt{-} & Filteroption\\
#\texttt{>} & Einzelzeichenersetzung\\
#\texttt{<} & diese Zeile geh"ort zu einer \texttt{>}-Zeile\\\hline
#\texttt{:} & Einfache Stringersetzung\\
#\texttt{\dq} & Erweiterte Stringersetzung\\
#\hline
Zeichen | Aktion
---------|--------------------------------------------------
# | Kommentarzeile
; | Kommentarzeile
! | Aktivierung eines Filters von Typ FILTER
? | Inverse Aktivierung eines Filters vom Typ FILTER
- | Filteroption
> | Einzelzeichenersetzung
< | diese Zeile geh
rt zu einer >-Zeile
: | Einfache Stringersetzung
" | Erweiterte Stringersetzung
5 Kommentarzeile
? Kommentarzeile
#\par\null\par\noindent
Eine Kommentarzeile hat folgenden regul
ren Aufbau:
^ *[#;].*$
Das hei
t, sie beginnt ("^") mit einer beliebigen Anzahl an Leerzeichen
(" *"), gefolgt von einem Doppelkreuz oder Semikolon ("[#;]") und
endet am Zeilenende (".*$").
Kommentarzeilen werden komplett ignoriert. Zwar verlangsamen sie das
Einlesen der Filterdatei, dies sollte jedoch niemanden davon abhalten,
seine Filterdateien ordentlich zu kommentieren!
Ohne ordentliche Kommentierung wird die Fehlersuche mit Sicherheit sehr
schwer. Fehler jedoch sind zumindest am Anfang in Folge der
fehlertr
chtigen regul
ren Ausr
cke durchaus zu erwarten.
5 Aktivierung eines Filters von Typ FILTER
? Aktivierung eines Filters von Typ FILTER
#\par\null\par\noindent
Eine Aktivierungszeile hat den folgenden Aufbau:
!@{I}Filtername@{i}
#\begin{center}
#\texttt{!}\emph{Filtername}
#\end{center}
Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an,
der bei G
ltigkeit des aktuellen Filters ebenfalls g
ltig werden soll.
Der zu aktivierende Filter mu
in der Filterdatei vor dem Filter stehen,
der die Aktivierungszeile enth
Auf diese Weise ist es m
glich, Filter innerhalb von Filtern aufzurufen.
Es ist jedoch nur eine maximale Schachtelungstiefe von 10 Filtern
erlaubt. Gr
ere Schachtelungstiefen d
rften in den seltensten F
sinnvoll sein, da die Filterdefinitionen dann rasch un
bersichtlich
werden.
Der Filtername wird als C-String interpretiert.
5 Inverse Aktivierung eines Filters vom Typ FILTER
? Inverse Aktivierung eines Filters vom Typ FILTER
#\par\null\par\noindent
Eine Aktivierungszeile hat den folgenden Aufbau:
?@{I}Filtername@{i}
#\begin{center}
#\texttt{?}\emph{Filtername}
#\end{center}
Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an,
der bei G
ltigkeit des aktuellen Filters ung
ltig werden soll.
Beinhaltet jener Filter ebenfalls Filteraktivierungen, so werden diese
zu inversen Filteraktivierungen. Beinhaltet jener Filter ebenfalls
inverse Filteraktivierungen, so werden diese zu Filteraktivierungen.
Der invers zu aktivierende Filter mu
in der Filterdatei vor dem Filter
stehen, der die Aktivierungszeile enth
Auf diese Weise ist es m
glich, Filter innerhalb von Filtern wieder zu
deaktivieren. Es ist jedoch nur eine maximale Schachtelungstiefe von 10
Filtern erlaubt. Gr
ere Schachtelungstiefen d
rften in den seltensten
llen sinnvoll sein, da die Filterdefinitionen dann auch sehr rasch
bersichtlich werden.
5 Filteroption
? Filteroption
#\par\null\par\noindent
Eine Filteroptionszeile hat folgenden Aufbau:
-@{I}Option@{i}=@{I}Wert@{i}
#\begin{center}
#\texttt{-}\emph{Option}\texttt{=}\emph{Wert}
#\end{center}
Ist der zugeh
rige Filter aktiviert (g
ltig), so erh
lt die `Option`
den angegebenen `Wert`. Derzeit sind verschiedene Filteroptionen
definiert, deren Einzelbedeutungen dem entsprechenden Kapitel zu
entnehmen sind:
@#|l|l|l|
#\hline
#Option & Typ & Standardwert\\\hline
#Anrede & Symbol & off \\
#Controlfilter & Schalter & off \\
#Dateiladen & Schalter & off \\
#Filterschutz & Schalter & off \\
#Footer & Schalter & off \\
& Schalter & off \\
#LALL-Filter & Schalter & off \\
#Leermailfilter & Schalter & off \\
#Quoteumbruch & Schalter & off \\
#RE-Filter & Schalter & off \\
#Zeilenl
nge & Zahlwert & 16384 \\\hline
Option | Typ | Standardwert
----------------|----------|--------------
Anrede | Symbol | off
Controlfilter | Schalter | off
Dateiladen | Schalter | off
Filterschutz | Schalter | off
Footer | Schalter | off
Gru
| Schalter | off
LALL-Filter | Schalter | off
Leermailfilter | Schalter | off
Quoteumbruch | Schalter | off
RE-Filter | Schalter | off
Zeilenl
nge | Zahlwert | 16384
Da beliebig viele Optionen innerhalb eines Filters angegeben werden
und au
erdem mehrere Filter gleichzeitig aktiv sein k
nnen, w
re es bei
einigen Optionen denkbar, da
widerspr
chliche Einstellungen aktiviert
werden. In diesem Fall ist in der Regel die Einstellung des zuletzt
abgearbeiteten Filters g
ltig. N
heres dazu ist den jeweiligen Optionen
zu entnehmen, so gibt es z.B. bei "Zeilenl
nge", "Anrede", "Gru
" und
"Footer" Ausnahmen von dieser Regel.
6 Filteroption Anrede
? Anrede
#\par\null\par\noindent
Es geh
rt nun einmal zum guten Ton, da
man die Leute mit einem
hlichen "Hallo" oder
hnlichem anredet. Manch einer h
lt dergleichen
r Tand, der nur die Mail verg
ert, das Datenaufkommen erh
Plattenplatz verschwendet u.
. Andere wiederum sind gekr
nkt, wenn man
den freundlichen Gru
am Anfang (oder Ende) vergi
IO-Converter bietet die M
glichkeit, verschiedene Begr
ungen zuf
auszuw
hlen und automatisch an den Anfang der Mail zu setzen. Dabei
werden zwei unterschiedliche Konzepte unterst
tzt und vereinigt.
IO-Converter versucht zun
chst, aus dem Infoblock oder dem Mailheader
eine Adresse oder einen Namen f
r die Anrede zu ermitteln. Gelingt dies,
so wird eine Begr
ungsanrede
ber die Nicknamedatei gesetzt. Ist dort
keine Anrede definiert, so wird eine der fest eingebauten Anreden mit
Namen versehen und verwendet.
Kann IO-Converter keinen Empf
ngernamen ermitteln, so wird eine der
eingebauten Anreden ohne Namen verwendet. Jede der Anreden kann einzeln
eingeschaltet werden:
-Anrede=hallo
-Anrede=hi
-Anrede=moin
-Anrede=servus
-Anrede=hall
-Anrede=mog
-Anrede=ave
-Anrede=salve
-Anrede=sei gegr
-Anrede=peace
-Anrede=gr
-Anrede=hello
-Anrede=bonjour
-Anrede=ahugahaga
-Anrede=bonsai
-Anrede=mah-jongg
erdem kann jegliche Anrede mit einem der Abschaltwerte, die bei der
Option "Controlfilter" beschrieben sind, verhindert werden. In dem Fall
tzt es auch nichts, wenn eine Anrede von einem anderen aktiven Filter
wieder eingeschaltet wird. Die Abschaltung hat absolute Priorit
t. Damit
ist es m
glich, einige Anreden generell freizuschalten und f
r bestimmte
Empf
nger alle Anreden abzuschalten. Mit einem der Einschaltwerte, die
bei der Option "Controlfilter" angegeben sind, k
nnen s
mtliche Anreden
eingeschaltet werden, aber auch dies nur, wenn sie nicht explizit
abgeschaltet sind.
Ist keine dieser Anreden eingeschaltet, so wird auch keine Anrede aus
der Nicknamedatei verwendet!
6 Filteroption Controlfilter
? Controlfilter
#\par\null\par\noindent
Hin und wieder kommt es vor, da
ein anderer I/O-Filter Control-Zeichen
mit ASCII-Code kleiner 32 in Mails einmischt. Ich hatte bei besonders
langen Mails auch einmal CAT in einer
lteren Version im Verdacht, hin
und wieder NUL-Bytes einzustreuen.
Solche Steuerzeichen haben zwei Nachteile. Zum einen werden sie von der
MAUS h
licherweise in Fragezeichen ("?") gewandelt, zum anderen weigert
sich CAT selbst (zumindest bis Version 2.63) Mails mit Steuerzeichen zu
lesen.
Mit einer der Einstellungen:
-Controlfilter=on
-Controlfilter=true
-Controlfilter=yes
-Controlfilter=ein
-Controlfilter=wahr
-Controlfilter=ja
nnen solche Steuerzeichen eliminiert werden, wohingegen bei einer der
Einstellungen:
-Controlfilter=off
-Controlfilter=false
-Controlfilter=no
-Controlfilter=aus
-Controlfilter=falsch
-Controlfilter=nein
Steuerzeichen
bernommen werden.
Bei widerspr
chlichen Angaben z
hlt diejenige, die in der Filterdatei am
weitesten oben steht, also zuerst definiert wurde.
6 Filteroption Dateiladen
? Dateiladen
#\par\null\par\noindent
Es ist m
glich, Text-Dateien zu einem Mailtext hinzuzuladen. Dazu wird
in den Text eine Zeile:
$Datei{@{B}Dateiname@{b}}
#\begin{quote}
# \verb|$Datei{|\textsl{Dateiname}\verb|}|
#\end{quote}
eingef
gt. Nach der schlie
enden Klammer darf kein Text, auch kein
Leerzeichen, mehr folgen.
Die Datei mit dem `Dateiname`n wird dann an der entsprechenden Stelle in
den Text eingef
gt. Der Text unterliegt der weiteren Filterung.
Innerhalb des Textes werden aber keine weiteren Dateien eingeladen.
Hinweis: Als Zeilenumbruch wird innerhalb des einzuf
genden Textes
sowohl CR+LF als auch LF erkannt. Ein einzelnes CR wird hingegen
ignoriert.
Soll der Text keiner weiteren Filterung unterliegen, also gesch
sein, so verwendet man "$$Datei" an Stelle von "$Datei".
Die Optionswerte zur Aktivierung und Deaktivierung dieses Mechanismus
sind wie bei der Filteroption "Controlfilter" zu verwenden. Bei
widerspr
chlichen Angaben z
hlt ebenfalls diejenige, die in der
Filterdatei am weitesten oben steht, also zuerst definiert wurde.
6 Filteroption Filterschutz
? Filterschutz
#\par\null\par\noindent
Sowohl beim Versenden, als auch beim Empfang z.B. von UUE-codierten
(Bin
r)-Dateien, w
re es katastrophal, wenn innerhalb des UUE-Teils
irgendeine Ersetzung stattfinden w
rde. In der Regel w
re es dann nicht
@autorefoff
mehr m
glich, den urspr
nglichen Inhalt zu rekonstruieren. Deshalb
@autorefon
existieren verschiedene Mechanismen, um Teile einer Mail von der
Filterung auszunehmen.
Gehorcht eine Textzeile innerhalb einer Mail einem der folgenden
regul
ren Ausdr
^begin: .*$
^begin$
^table$
^\$begin$
^-----PGP START MESSAGE-----$
so wird ab dieser Zeile nicht mehr gefiltert (es erfolgt auch kein
Zeilenumbruch entsprechend der Filteroption Zeilenl
nge). Die Filterung
wird solange unterdr
ckt, bis das Mailende erreicht wird, oder bis eine
Zeile gefunden wird, die einem der regul
ren Ausdr
^end$
^\$end$
^-----PGP END MESSAGE-----$
gehorcht. Nach dieser Zeile wird wieder gefiltert. Bei den Varianten
"$begin" und "$end" wird au
erdem die jeweilige Textzeile gel
scht.
Da nun leider Mails nur eine maximale L
nge von 16000 Zeichen enthalten
rfen, auf der anderen Seite UUE-Teile oft l
nger sind, werden
UUE-Teile oftmals einfach gesplittet (ohne die Segmentierungsoption von
UUE zu verwenden). Diese UUE-Teile sind dann nicht mit "table" bzw.
"begin" und "end" eingefa
t. Daher wurden zwei weitere Schutzmechanismen
implementiert.
Sind in einer Mail mehr als 2 gleichlange Zeilen mit einer Breite von
mindestens 40 Zeichen und ohne Leerzeichen zu finden, so werden diese
Zeilen nicht gefiltert. Aus Sicherheitsgr
nden ist zus
tzlich die
chste Zeile von der Filterung ausgenommen.
Sind in einer Mail mehr als 4 gleichlange Zeilen mit einer Breite gr
40 zu finden, die alle mit einem "M" beginnen, so werden diese Zeilen
(und ebenfalls die n
chste darauf folgende) von der Filterung
ausgenommen.
Damit d
rften die meisten vorkommenden UUE-Codierungen von der Filterung
ausgenommen sein. Sollte jemand der Meinung sein, er habe einen besseren
- um nicht zu sagen: genialen - Algorithmus f
r die Erkennung
schutzw
rdiger Mailteile, so m
ge er mir diesen bitte mitteilen.
Eingeschaltet werden s
mtliche Ausnahmen derzeit
ber die Filteroption
"Filterschutz". Die Optionswerte sind wie bei der Filteroption
"Controlfilter" zu verwenden.
6 Filteroption Footer
? Footer
#\par\null\par\noindent
Der Footer wird erlaubt oder verboten. Dabei hat das Verbieten
(Abschalten) h
here Priorit
t, das hei
t, der explizit abgeschaltete
Footer kann nicht wieder eingeschaltet werden.
heres zu Footern findet sich bei der Erkl
rung zur Footerdatei und dem
Schl
sselwort @FOOTER.
Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu
verwenden.
6 Filteroption Gru
? Gru
#\par\null\par\noindent
Der automatische Schlu
satz kann ein- und ausgeschaltet werden. Dabei
hat das Abschalten h
here Priorit
t, das hei
t, der explizit
abgeschaltete Schlu
satz kann nicht wieder eingeschaltet werden.
Der Schlu
satz oder Schlu
wird normalerweise direkt ans Ende der
Mail gesetzt. Enth
lt die Mail aber eine Zeile, die nur aus zwei bis
drei Minuszeichen besteht, oder eine Zeile, die mit "PS.", "PS:", "PS "
oder "P.S." beginnt (wobei Gro
-/Kleinschreibung nicht beachtet wird),
so wird der Gru
unmittelbar vor diese Zeile gesetzt. Auf den Gru
folgt
dann au
erdem eine zus
tzliche Leerzeile.
heres zum Schlu
satz oder Schlu
findet sich in der Erkl
rung zur
Nicknamedatei unter dem Schl
sselwort @GR
Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu
verwenden.
6 Filteroption LALL-Filter
? LALL-Filter
#\par\null\par\noindent
Diese Filteroption ist ein Analogon zu "RE-Filter". Es gilt entsprechend
das dort Geschriebene.
6 Filteroption Leermailfilter
? Leermailfilter
#\par\null\par\noindent
Die MAUS erlaubt schon lange, da
eine Mail oder ein Infotext o.
keinen Text enth
lt. Im Outfile bekommt man dergleichen in verschiedenen
usen und unterschiedlichen Gruppen, wenn der Dollar abgelaufen ist.
@autorefoff
Leider mag jedoch CAT (zumindest bis Version 2.63) Mails ohne Inhalt
@autorefon
berhaupt nicht und meldet dann irgendwelche obskuren Fehler.
Mit dieser Filteroption ist es m
glich, leere Mails zu verhindern. Es
findet ein Plausbilit
tstest statt, so da
die Filteroption nur auf
Mails und nicht auf Infotexte u.
. wirken sollte.
Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter".
6 Filteroption Quoteumbruch
? Quoteumbruch
#\par\null\par\noindent
Es gibt einige Frontends f
r den Maus-Tausch, bei denen Abs
tze beim
Quoten nicht umbrochen werden. Hat man nun in der MAUS eine feste
Zeilenl
nge eingestellt, so f
hrt das nat
rlich dazu, da
auch diese
sehr langen Quote-Zeilen umbrochen werden. Das Quotekennzeichen (ein
erzeichen und eventuell Initialen) wird jedoch bei diesem Umbruch an
den neuen Zeilenanf
ngen nicht erneut eingef
gt. Damit sind solche
Passagen nur sehr schwer als Quotes zu erkennen.
Genau dasselbe Problem w
rde sich normalerweise bei IO-Converter mit der
Filteroption "Zeilenl
nge" ergeben. Ist jedoch diese Filteroption,
"Quoteumbruch", ebenfalls aktiviert, so werden Quotes, die aus maximal
vier Initialen (Gro
buchstaben!) und einem Gr
erzeichen bestehen,
erkannt und jeweils an den neuen Zeilenanfang kopiert.
Ich kann nur empfehlen, den Umbruch in der MAUS abzuschalten
(Zeilenl
nge im N.U.D.E. auf 0 setzen) und den Umbruch IO-Converter zu
berlassen.
Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter".
6 Filteroption RE-Filter
? RE-Filter
#\par\null\par\noindent
Im InterNet und teilweise auch im Fido ist es
blich, bei Antworten ein
"RE:" an den Anfang der Betreffzeile zu stellen. Teilweise folgen auch
mehrere REs aufeinander oder wird die Anzahl als Potenz angegeben (z.B.
"RE^5:" f
r einen Kommentar in 5. Ebene).
Sortiert man in CAT die Stichwortliste nach Betreffs, so w
re es oft
nschenswert, wenn CAT die verschiedenen Formen von "RE" ignorieren
rde. Leider kann CAT (zumindest bis Version 2.63) auch das nicht. Auf
der anderen Seite ist das "RE" bei funktionierender Kommentarverkettung
ohnehin reichlich nutzlos. Daher ist IO-Converter in der Lage, die
verschiedensten Formen von "RE" zu l
schen. Lediglich, wenn nach dem
Entfernen der "RE"-Formen ein leerer Betreff
brig bliebe, erfolgt
grunds
tzlich keine Betreff-Filterung. Dabei wird auch eine eventuelle
Filterung mit der Filteroption "LALL-Filter" ber
cksichtigt.
Die Aktivierung und Deaktivierung erfolgt wie bei der Filteroption
"Controlfilter".
6 Filteroption Zeilenl
? Zeilenl
#\par\null\par\noindent
ber diese Filteroption kann die maximale Zeilenl
nge einer Textzeile
festgelegt werden. Dies ist z.B. n
tzlich, um PGP-Mails vor der
Verschl
sselung bzw. nach der Entschl
sselung zu umbrechen, weil CAT
leider nicht in der Lage ist, einmal einsortierte Nachrichten selbst neu
zu umbrechen.
Sind mehrere Zeilenl
ngenbeschr
nkungen aktiv, so ist die kleinste
angegebene Zeilenbreite g
ltig.
5 Einzelzeichenersetzung
? Einzelzeichenersetzung
#\par\null\par\noindent
Die Einzelzeichenersetzung ist eine zweizeilige Definition:
>@{I}Suchzeichen@{i}
<@{I}Ersatzzeichen@{i}
#\begin{center}
#\texttt{>}\emph{Suchzeichen}\\
#\texttt{<}\emph{Ersatzzeichen}\\
#\end{center}
wobei `Suchzeichen` und `Ersatzzeichen` jeweils Folgen von Zeichen sind.
Jedes Zeichen aus `Suchzeichen` wird durch das darunterstehende Zeichen
in `Ersatzzeichen` ersetzt. Wichtig ist dabei, da
jedes Zeichen
einzeln, unabh
ngig von seinem Kontext betrachtet wird. So w
rde z.B.
mit:
>0123456789
<1234567890
jede Ziffer durch ihren Nachfolger (und die "9" durch die "0") ersetzt.
Ich erinnere noch einmal daran, da
auch an dieser Stelle eine
C-String-Interpretation stattfindet!
Sollen einzelne Zeichen durch Zeichenketten (Strings) oder Zeichenketten
durch einzelne Zeichen ersetzt werden, so mu
r die Stringersetzung
verwendet werden.
Die Einzelzeichenersetzung ist erheblich schneller als jede der beiden
Stringersetzungen und ben
tigt nat
rlich auch weniger Speicher.
5 Einfache Stringersetzung
? Stringersetzung
#\par\null\par\noindent
Die Zeile f
r die einfache Stringersetzung ist wie folgt aufgebaut:
:@{I}Suchstring@{i}=@{I}Ersatzstring@{i}
#\begin{center}
#\texttt{:}\emph{Suchstring}\texttt{=}\emph{Ersatzstring}
#\end{center}
Die Bedeutung ist dabei ganz einfach so, da
jedes Auftreten des
`Suchstrings` durch den `Ersatzstring` ersetzt wird.
Aufgrund des einfachen Aufbaus ist es jedoch nicht m
glich, da
`Suchstring` oder `Ersatzstring` Zeilenumbr
che enth
lt und damit
zeilen
bergreifend arbeitet. Es k
nnen nur `Suchstring`s innerhalb einer
Zeile ersetzt werden.
Im `Suchstring` kann auch kein Gleichheitszeichen ("=") vorkommen, da
nach dem ersten Gleichheitszeichen der `Ersatzstring` beginnt.
Ich erinnere noch einmal daran, da
auch an dieser Stelle eine
C-String-Interpretation stattfindet!
Sollte diese einfache Stringersetzung aufgrund dieser Beschr
nkungen
nicht ausreichen, so kann man die "Erweiterte Stringersetzung"
verwenden. Dadurch wird aber zumindest das Einlesen der Filterdatei
langsamer, u.U. auch die Filterung selbst.
5 Erweiterte Stringersetzung
? Erweiterte Stringersetzung
#\par\null\par\noindent
Die erweiterte Stringersetzung ist sowohl in der Funktion als auch in
der Definition nicht auf einzelne Zeilen beschr
nkt. Der Aufbau ist:
"@{I}Suchstring@{i}" "@{I}Ersatzstring@{i}"
#\begin{center}
#\texttt{\dq}\emph{Suchstring}\texttt{\dq~\dq}\emph{Ersatzstring}\texttt{\dq}
#\end{center}
Sowohl `Suchstring` als auch `Ersatzstring` stehen also in Anf
hrungszeichen.
Zwischen dem Schlu
zeichen des `Suchstring`s und dem Anf
hrungszeichen
des `Ersatzstring`s steht mindestens ein Leerzeichen.
Zeilenumbr
che innerhalb von `Suchstring` und `Ersatzstring` werden zun
ignoriert. Die Strings werden jedoch als C-Strings interpretiert. Sollen
tats
chlich Zeilenumbr
che im `Suchstring` oder `Ersatzstring` auftreten, so
nnen diese explizit mit "\n" gesetzt werden.
heres zu C-Strings ist dem entsprechenden Kapitel zu entnehmen.
Die erweiterte Stringersetzung ist zwar wesentlich m
chtiger als die
einfache Stringersetzung. Auf der anderen Seite, dauert das Einlesen
und Analysieren entsprechender Filter wesentlich l
nger.
4 FILTER
? FILTER
Die Filterspezifikation sieht folgenderma
en aus:
FILTER=@{I}Filtername@{i}
#\begin{center}
#\texttt{FILTER=}\emph{Filtername}
#\end{center}
Filter von Typ FILTER werden auch "freie Filter" genannt. Der Name kommt
daher, da
sie selbst nicht unmittelbar, sondern nur mittelbar, also
durch Aktivierung in anderen Filtern, g
ltig werden k
nnen.
Freie Filter dienen in erster Linie dazu, Filter f
r verschiedene
Aufgaben zu definieren, die dann sp
ter innerhalb von typisierten Filtern
aktiviert werden.
Freie Filter erm
glichen damit eine klarere Strukturierung der
Filterdatei. Sie erleichtern die Fehlereingrenzung und helfen, Speicher
zu sparen. Ich kann ihre Verwendung somit nur empfehlen.
4 ALLE
? ALLE
Die Filterspezifikation besteht nur aus dem Schl
sselwort:
ALLE
#\begin{center}
#\texttt{ALLE}
#\end{center}
Ein ALLE-Filter ist immer g
ltig, das hei
t, er wirkt auf alle Mails.
ber den ALLE-Filter k
nnen z.B. Optionen eingestellt werden, die immer
gelten sollen. Auch immer aktive Zeichen- oder Stringersetzungen sind
denkbar.
4 GRUPPE
? GRUPPE
Die Filterspezifikation besteht aus dem Schl
sselwort und einem
regul
ren Ausdruck:
GRUPPE=@{I}Gruppenausdruck@{i}
#\begin{center}
#\texttt{GRUPPE=}\emph{Gruppenausdruck}
#\end{center}
Ermittelt IO-Converter anhand des Mailheaders oder u.U. auch mit Hilfe
des Infoblocks, da
es sich um eine
ffentliche Mail handelt, so wird
der `Gruppenausdruck` mit dem Gruppennamen verglichen. Pa
t der
Gruppenname auf den `Gruppenausdruck`, so wird der Filter g
ltig.
WICHTIG: Der `Gruppenausdruck` wird zun
chst als C-String interpretiert.
Damit mu
ein Backslash ("\") also bereits mit einem Backslash gequotet
werden, ehe er als regul
rer Ausdruck interpretiert wird.
Am Ende der Mail wird der Filter wieder deaktiviert.
Die MAUS verlangt nicht, da
bei Kommentaren (sowohl auf
ffentliche als
auch auf private Mails) die Zielgruppe (bzw. der Empf
nger) angegeben
ist. Zumindest bis Version 2.63 verzichtet CAT darauf, diese Information
in das Outfile zu schreiben. Bei diesen Mails kann die Gruppe von
IO-Converter nur erkannt werden, wenn sie im Infoblock spezifiziert ist.
Ist ein Eintrag im Infoblock vorhanden, so wird derzeit immer dieser an
Stelle eines Eintrags im Mailheader verwendet.
4 PERSON
? PERSON
Die Filterspezifikation besteht aus dem Schl
sselwort und einem
regul
ren Ausdruck:
PERSON=@{I}Userausdruck@{i}
#\begin{center}
#\texttt{PERSON=}\emph{Userausdruck}
#\end{center}
PERSON ist eine Zusammenfassung von Empf
nger und Absender, in fr
heren
Versionen hie
dieses Schl
sselwort noch "USER" (und fiel damit auf wie
ein Ro
bollen auf der Autobahn).
PERSON funktioniert analog zu GRUPPE, jedoch f
r pers
nliche Mails. Das
erste Kriterium ist der Absender, das zweite der Empf
nger. Da in
Outfiles immer nur der Empf
nger eingetragen wird, kann so eine
Unterscheidung getroffen werden.
4 WEGEN
? WEGEN
Die Filterspezifikation besteht aus dem Schl
sselwort und einem
regul
ren Ausdruck:
WEGEN=@{I}Betreffausdruck@{i}
#\begin{center}
#\texttt{WEGEN=}\emph{Betreffausdruck}
#\end{center}
Erkennt IO-Converter eine Betreffzeile, so wird diese zun
chst aufgrund
der eventuell bereits aktiven Filteroptionen LALL-Filter und RE-Filter
behandelt. Anschlie
end wird gepr
ft, ob der Betreffausdruck dem Betreff
entspricht. Ist dies der Fall, wird der WEGEN-Filter g
ltig.
Will man einen Filter, der auf den Betreff vor der Behandlung durch
einen LALL- oder RE-Filter aktiv wird, so mu
man sich mit dem
Schl
sselwort ZEILE behelfen.
4 ZEILE
? ZEILE
Die Filterspezifikation besteht aus dem Schl
sselwort und einem
regul
ren Ausdruck:
ZEILE=@{I}Zeilenausdruck@{i}
#\begin{center}
#\texttt{ZEILE=}\emph{Zeilenausdruck}
#\end{center}
Der ZEILE-Filter ist die allgemeinste Form. Theoretisch k
nnten PERSON
und GRUPPE auch durch einen Zeilenfilter ausgedr
ckt werden. Allerdings
nnten dann einige Zusatzfunktionen wie z.B. die Anrede nicht alleine
damit arbeiten.
Beim ZEILE-Filter werden komplette Outfile-Zeilen mit dem `Zeilenausdruck`
verglichen, wobei er zun
chst ebenfalls als C-String interpretiert wird.
Es wird jeweils genau eine Outfile-Zeile verglichen!
WICHTIG: Es handelt sich dabei nicht um Text-Zeilen sondern um
Outfile-Zeilen. Im Outfile beginnt jede Textzeile mit einem Doppelpunkt
(":"). Welche Zeilen ansonsten z.B. im Mailheader vorkommen k
nnen, ist
der TAUSCH-Dokumentation zu entnehmen (siehe tau_doku.hyp von Uwe Ohse).
2 Der Infoblock
? Infoblock
IO-Converter wertet au
er dem Mailheader noch einige spezielle Zeilen
aus, die dazu am Anfang des Mailtextes stehen m
ssen. Aufgrund ihres
Informationsgehalts werden diese Zeilen "Infoblock" genannt. Vor dem
Infoblock darf kein Text und keine Leerzeile stehen. Ausnahmen sind
Verkettungszeilen, die entweder mit "Kommentar zu" oder mit einem
Minuszeichen beginnen, "Reply-To:"-Zeilen und "Follow-Up:"-Zeilen, denen
jeweils maximal eine Leerzeile folgen darf. IO-Converter macht hierbei
keine Unterscheidung zwischen Klein- und Gro
buchstaben.
Der Infoblock wird nach seiner Auswertung aus der Mail entfernt. Steht
nach dem Infoblock eine Leerzeile so wird diese ebenfalls entfernt. Alle
weiteren Leerzeilen bleiben jedoch erhalten.
Alle Angaben im Infoblock sind optional, das hei
t, der Infoblock mu
nicht zwingend alle Zeilen enthalten. Er kann auch ganz entfallen. In
erster Linie ist der Infoblock dazu gedacht, bei Kommentaren den
Gruppennamen bzw. den Empf
nger "nachzureichen".
Folgende Zeilen sind definiert, wobei die Leerzeichen nach dem Stern und
nach dem Doppelpunkt zwingend sind, und die Zeilen linksb
ndig mit dem
Stern beginnen m
ssen! Die Reihenfolge der Zeilen innerhalb des
Infoblocks ist jedoch beliebig.
#\vspace{1ex}\noindent%
* Keine Anrede
Die Anrede soll in jedem Fall unterbunden werden. Dies ist n
tzlich,
wenn die Anrede aus irgendeinem Grund ausnahmsweise von Hand in den Text
eingebaut wird oder in Kombination mit "* Kein Gru
" beim Kopieren von Mails.
#\vspace{1ex}\noindent%
* Kein Gru
Der Schlu
satz soll in jedem Fall unterbunden werden. Dies ist n
tzlich,
wenn der Schlu
satz aus irgendeinem Grund von Hand in den Text eingebaut
wird oder in Kombination mit "* Keine Anrede" beim Kopieren von Mails.
#\vspace{1ex}\noindent%
* Kein Footer
Der Footer soll in jedem Fall unterbunden werden. Dies ist z.B. beim
Kopieren von Mails n
tzlich.
#\vspace{1ex}\noindent%
* Gruppe: `argument`
Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument
wird direkt f
r den Vergleich mit GRUPPE-Filtern verwendet.
Voraussetzung ist allerdings, da
die Mail nicht bereits eindeutig als
pers
nliche Mail identifiziert wurde. Ist die Zeile nicht vorhanden,
wird statt dessen die Information aus dem Mailheader verwendet.
#\vspace{1ex}\noindent%
* Von: `argument`
Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument
wird direkt f
r den Vergleich mit PERSON-Filtern verwendet. Ist die
Zeile nicht vorhanden, wird statt dessen die Information aus dem
Mailheader verwendet.
#\vspace{1ex}\noindent%
* An: `argument`
Was sich hinter dem Argument verbirgt, spielt zun
chst keine Rolle. Das
Argument wird direkt f
r den Vergleich mit PERSON-Filtern verwendet
(wenn kein Absender auszumachen ist, mit dieser Einschr
nkung k
nnen IN-
und Outfile unterschieden werden). Voraussetzung ist jedoch, da
Mail nicht bereits eindeutig als Gruppenmail identifiziert wurde. Ist
die Zeile nicht vorhanden, wird statt dessen die Information aus dem
Mailheader verwendet.
Es wird empfohlen als Argument die vollst
ndige Mailadresse des
Empf
ngers zu verwenden.
#\vspace{1ex}\noindent%
* Name: `argument`
Das Argument wird f
r die Anrede verwendet. Dabei sind folgende
Varianten m
glich:
#\begin{itemize}
#\item Enth"alt das Argument einen Klammeraffen ("`@"'), wird davon
# ausgegangen, da"s es sich um eine Mailadresse handelt. Nach dieser
# Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle
# Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f"ur
# die Anrede verwendet. Ist kein Nickname, aber ein Realname
# eingetragen, so wird dieser f"ur die Anrede verwendet.
#\item Enth
lt das Argument keinen Klammeraffen ("`@"'), wird davon
# ausgegangen, da
es sich um einen Realname handelt. Nach diesem
# Realname wird in der Nickname-Datei gesucht (langsame,
# sequentielle Suche). Ist kein entsprechender Eintrag vorhanden,
# so wird der Realname unver
ndert verwendet. Ist ein Eintrag
# vorhanden, der auch einen Nickname enth
lt, so wird der Nickname
# verwendet. Ist ein Eintrag ohne Nickname vorhanden, so wird der
# Realname in der Schreibweise der Nickname-Datei verwendet.
#\end{itemize}
a) Enth
lt das Argument einen Klammeraffen ('@@'), wird davon
ausgegangen, da
es sich um eine Mailadresse handelt. Nach dieser
Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle
Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f
r die
Anrede verwendet. Ist kein Nickname, aber ein Realname eingetragen,
so wird dieser f
r die Anrede verwendet.
b) Enth
lt das Argument keinen Klammeraffen ('@@'), wird davon
ausgegangen, da
es sich um einen Realname handelt. Nach diesem
Realname wird in der Nickname-Datei gesucht (langsame, sequentielle
Suche). Ist kein entsprechender Eintrag vorhanden, so wird der
Realname unver
ndert verwendet. Ist ein Eintrag vorhanden, der auch
einen Nickname enth
lt, so wird der Nickname verwendet. Ist ein
Eintrag ohne Nickname vorhanden, so wird der Realname in der
Schreibweise der Nickname-Datei verwendet.
Ist keine "* Name: "-Zeile vorhanden, so wird statt dessen die
"* An: "-Zeile verwendet. Ist auch keine "* An: "-Zeile vorhanden, so
wird die Adresse aus dem Mailheader verwendet.
Entsprechend dem Kapitel "Info-Zeilen-Formate in CAT", empfiehlt
Richard, den Realname als Argument zu verwenden.
Interessant ist vielleicht noch, da
diverse deutsche, franz
sische und
englische Adelstitel automatisch erkannt und entsprechend dem Nachnamen
zugeschlagen werden. Probleme in diesem Bereich kann man durch
Definition von Nicknames umgehen. Au
erdem kann man sich gerne an mich
wenden.
Jelly Cat kann ab Version 1.1 den Infoblock
brigens vollautomatisch
setzen. In diesem Fall wird bei "* Name: " die Empf
nger-Adresse
eingesetzt. Jelly Cat setzt nat
rlich nur solche Zeilen ein, die nicht
bereits vorhanden sind. Im einzelnen sind das normalerweise:
@#|l|c|c|c|
#\hline
# Mailtyp & An & Name & Gruppe \\
#\hline
# PM (neu) & nein & nein & nein \\
# PM-Kommentar & ja & nein & nein \\
# PM-Kommentar auf AM & nein & nein & nein \\
# AM (neu) & nein & ja & nein \\
# AM-Kommentar & nein & ja & ja \\
# AM-Kommentar in Fremdgruppen & nein & ja & nein \\
# Kopie & nein & nein & nein \\
# Weiterleitung & nein & nein & nein \\
#\hline
Mailtyp | An | Name | Gruppe
------------------------------|--------|--------|--------
PM (neu) | nein | nein | nein
PM-Kommentar | ja | nein | nein
PM-Kommentar auf AM | nein | nein | nein
AM (neu) | nein | ja | nein
AM-Kommentar | nein | ja | ja
AM-Kommentar in Fremdgruppen | nein | ja | nein
Kopie | nein | nein | nein
Weiterleitung | nein | nein | nein
Bei "Name" wird jeweils die Adresse des kommentierten Users eingesetzt.
Wenn man sich also selbst kommentiert w
re es angebracht, entweder von
Hand einen anderen Namen zu setzen oder die Anrede abzuschalten. Im Fall
der neuen
ffentlichen Mail d
rfte es unm
glich sein, tats
chlich eine
entsprechende Infozeile zu setzen.
#\vspace{1ex}\noindent
brigens kann man zwei verschiedene Varianten des Infoblocks leicht mit
Hilfe des Infozeilen-Mechanismus von CAT nahezu automatisch setzen. Wie
die Infozeilen in CAT eingestellt werden k
nnen, ist der CAT-Anleitung
zu entnehmen (siehe auch das Kapitel "Info-Zeilen-Formate in CAT").
2 Verkettungszeilen im Mailtext
? Verkettungszeilen
? Verkettungszeile
Soll eine Verkettung gruppen
bergreifend oder in einer sogenannten
Wildwest-Form erfolgen, so mu
die Verkettungsinformation physikalisch
in der ersten Zeile stehen, also noch vor einem eventuellen Info-Block.
IO-Converter sollte keinesfalls eine Anrede oder
hnliches vor die
Verkettungszeile setzen, damit diese beim Empf
nger noch einwandfrei
erkannt wird. Au
erdem darf die Zeile nicht durch Filterung verf
lscht
werden.
IO-Converter erkennt zwei Arten von Verkettungszeilen. Zum einen wird
eine solche angenommen, wenn die erste Zeile mit einem Minuszeichen
beginnt, zum anderen, wenn die erste Zeile mit "Kommentar zu" beginnt.
Das sind die Verkettungsarten, die CAT normalerweise einsetzt. Auf diese
Verkettungszeile darf dann noch eine Leerzeile (hier sind auch keine
Leerzeichen erlaubt) folgen.
Derart erkannte Verkettungszeilen werden von IO-Converter automatisch
in einen gesch
tzten Block gewandelt. Dies ist auch dann der Fall, wenn
die Option '-Filterschutz' nicht aktiviert ist. Auf diese Weise ist
sichergestellt, da
Wildwest- bzw. gruppen
bergreifende Verkettung durch
IO-Converter nicht zerst
rt werden.
Ebenso wird mit "Reply-To:"- und "Follow-Up:"-Zeilen verfahren.
2 C-String-Interpretation
? C-String
? C-Strings
Bei einem C-String hat der Backslash ("\") eine Sonderbedeutung, er
leitet einen Teilstring ein, der speziell interpretiert wird. Folgende
Sonderfolgen existieren:
@#|l|r|c@{~}p{.7\textwidth}|
#\hline
#Teilstring & HEX && Bedeutung\\\hline
#\texttt{\symbol{92}'} & 27 & \texttt{'} & (Hochkomma, Apostroph)\\
#\texttt{\symbol{92}\dq} & 22 & \texttt{\dq} & (Anf"uhrungszeichen)\\
#\texttt{\symbol{92}?} & 3F & \texttt{?} & (Fragezeichen)\\
#\texttt{\symbol{92}\symbol{92}} & 5C & \texttt{\symbol{92}} &
# (Backslash)\\
#\texttt{\symbol{92}a} & 07 && (Systemglocke)\\
#\texttt{\symbol{92}b} & 08 && (Backspace)\\
#\texttt{\symbol{92}f} & 0C && (Seitenvorschub)\\
#\texttt{\symbol{92}n} & 0A && (Wagenr"ucklauf+Zeilenvorschub)\\
#\texttt{\symbol{92}r} & 0D && (Wagenr"ucklauf)\\
#\texttt{\symbol{92}t} & 09 && (horizontaler Tabulator)\\
#\texttt{\symbol{92}v} & 0B && (vertikaler Tabulator)\\
#\texttt{\symbol{92}}\emph{ZZZ} &&& \emph{ZZZ} = 1 bis 3 Oktalziffen, es
# wird das ASCII-Zeichen mit dem
# entsprechenden Oktalwert
# eingesetzt.\\
#\texttt{\symbol{92}x}\emph{HH} &&& \emph{HH} = 1 bis n
# Hexadezimalziffern, es wird das
# ASCII-Zeichen mit dem entsprechenden
# Hexadezimalwert modulo 256
# eingesetzt.\\\hline
Teilstring | HEX | Bedeutung
------------|-----|-------------------------------------------
\' | 27 | ' (Hochkomma, Apostroph)
\" | 22 | " (Anf
hrungszeichen)
\? | 3F | ? (Fragezeichen)
\\ | 5C | \ (Backslash)
\a | 07 | (Systemglocke)
\b | 08 | (Backspace)
\f | 0C | (Seitenvorschub)
\n | 0A | (Wagenr
cklauf+Zeilenvorschub)
\r | 0D | (Wagenr
cklauf)
\t | 09 | (horizontaler Tabulator)
\v | 0B | (vertikaler Tabulator)
\ZZZ | | ZZZ = 1 bis 3 Oktalziffen, es wird das
| | ASCII-Zeichen mit dem entsprechenden
| | Oktalwert eingesetzt.
\xHH | | HH = 1 bis n Hexadezimalziffern, es wird
| | das ASCII-Zeichen mit dem entsprechenden
| | Hexadezimalwert modulo 256 eingesetzt.
In allen anderen F
llen wird der Backslash einfach ignoriert, also
einfach weggelassen.
2 Die Nicknamedatei
? Nicknamedatei
Bei der Nicknamedatei handelt es sich um eine Konfigurationsdatei f
Anreden mit Spitznamen und allem, was rundherum dazugeh
rt. Die Datei
ist
hnlich der Filterdatei in verschiedene Bl
cke unterteilt, die
jeweils mit einem Schl
sselwort eingeleitet werden. Zur deutlicheren
Unterscheidung haben die Kommentare in Nicknamedateien einen anderen
Aufbau als in den Filterdateien.
Die Schl
sselworte stehen jeweils als einzelne Worte innerhalb einer
Zeile. Die maximal erlaubte Zeilenl
nge liegt bei 16382 Zeichen.
Folgende Schl
sselworte werden derzeit erkannt: @ANREDEN, @GR
@NAMEN, @GRUPPEN, @ADRESSDATEI, @SONST, @FOOTER, @ENDE.
Beginnt eine Zeile mit einem Klammeraffen, gefolgt von einem
Leerzeichen, einem Tabulator oder einem Zeilenumbruch, so handelt es
sich um einen Kommentar. Eine Leerzeile, die auch keine Leerzeichen oder
Tabulatoren enth
lt, wird ebenfalls als Kommentar ignoriert. Kommentare
sind
berall au
er unmittelbar nach @SONST oder @ADRESSDATEI erlaubt.
Innerhalb von Adre
dateien sind ebenfalls keine Kommentarzeilen
erlaubt.
Hinweis: Enth
lt eine Nicknamedatei kein Schl
sselwort, so wird sie
gelesen und f
r richtig befunden. Ist die angegebene Nicknamedatei (bzw.
"nickname.nik") nicht vorhanden, so wird eine Warnung ausgegeben.
erdem werden Fehler in der Nicknamedatei (au
er bei "-O 0") immer
angemahnt. Sie f
hren jedoch zu keinem Programmabbruch.
IO-Converter liegt eine Beispiel-Nicknamedatei "nickname.nik" bei, mit
der die Verwendung demonstriert wird.
3 Kommentarzeilen in der Nicknamedatei
? Kommentarzeilen
Innerhalb der Nicknamedatei sind Kommentarzeilen m
glich. Zun
chst wird
alles, was vor dem ersten Schl
sselwort steht, und alles, was nach dem
Schl
sselwort @ENDE steht, als Kommentar betrachtet.
@autorefoff
ber hinaus gelten Leerzeilen ohne jeglichen Inhalt, also auch ohne
@autorefon
Leerzeichen oder Tabulatoren, als Kommentarzeilen.
Alle Zeilen, die mit einem Klammeraffen ("@"), gefolgt von einem
Leerzeichen, Tabulator oder Zeilenumbruch, beginnen, gelten ebenfalls
als Kommentarzeilen.
Kommentarzeilen sind
berall erlaubt, au
er unmittelbar nach dem
Schl
sselwort @SONST, unmittelbar nach dem Schl
sselwort @ADRESSDATEI
und innerhalb von Adre
dateien.
3 Das Nickname-Schl
sselwort @ANREDEN
? @ANREDEN
Die folgenden Zeilen, die als C-String interpretiert werden, definieren
Anreden. Jede Zeile definiert genau eine Anrede. Die Anreden haben
folgenden Aufbau:
#\begin{center}
# \emph{Stufe} \emph{Anrede}
#\end{center}
@{I}Stufe Anrede@{i}
wobei `Stufe` eine Zahl zwischen 0 und 31 ist. Diese Zahl stellt eine
Art Gru
stufe dar. Wozu die Stufen dienen, ist bei @NAMEN, @ADRESSDATEI
bzw. @SONST zu sehen.
Es ist auch m
glich, einer Anrede mehrere Stufen zuzuweisen. Es sind
einzelne Stufen oder Bereiche (z.B. "2..5" oder "..5" oder "2..")
erlaubt. Mehrere Angaben k
nnen, durch Kommata voneinander getrennt,
kombiniert werden (z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret,
so bedeutet dies, da
die Anrede allen Stufen au
er den angegeben
zugeh
rt. Die eigentliche Anrede beginnt bei dem ersten Zeichen, das
nicht diesem Aufbau gehorcht, oder nach dem ersten Leerzeichen.
Die `Anrede` ist die eigentliche Anrede. Innerhalb der `Anrede` sind
besondere Ersatzvariablen m
glich, die dann bei der eigentlichen Anrede
entsprechend ersetzt werden:
@#|l|l|p{.7\textwidth}|
#\hline
#Variable & Bedeutung & Ersatz\\\hline
#\texttt{\$N} & Name & Nickname oder der kompletter Realname\\\hline
#\texttt{\$F} & Firstname & Nickname oder der ermittelte Vorname\\\hline
#\texttt{\$L} & Lastname & Nickname oder der ermittelte Nachname\\\hline
Variable | Bedeutung | Ersatz
----------|-----------|------------------------------
$N | Name | Nickname oder der komplette
| | Realname
$F | Firstname | Nickname oder der ermittelte
| | Vorname
$L | Lastname | Nickname oder der ermittelte
| | Nachname
Es ist au
erdem m
glich, Anreden ohne Stufe zu definieren. Diese werden
dann - nach M
glichkeit - an Stelle der internen Anreden verwendet, wenn
kein Name ermittelt werden kann. Bei diesen Anreden ist es somit nicht
glich und nicht sinnvoll Ersatzvariablen zu verwenden. Anreden ohne
Stufe sind nicht gleichbedeutend mit Anreden der Stufe 0!
Die maximale Anzahl der definierbaren Anreden ist nur vom freien
Speicher abh
ngig. Die Auswahlgeschwindigkeit sinkt jedoch mit
zunehmender Anzahl (linear).
Es sind an beliebiger Stelle Kommentarzeilen erlaubt.
3 Das Nickname-Schl
sselwort @GR
? @GR
Dieses Schl
sselwort leitet die Schlu
e (Schlu
tze) ein. Die
Zeilen werden als C-Strings interpretiert. Die Zeilen sind wie bei
@ANREDEN aufgebaut, es sind dieselben Ersatzvariablen m
glich.
Wurde eine @ANREDEN-Begr
ung verwendet, so werden automatisch nur
Schlu
e mit derselben Stufe zuf
llig ausgew
hlt. Wurde keine
@ANREDEN-Begr
ung verwendet, so findet die zuf
llige Auswahl unter den
Schlu
en der @SONST-Stufe statt. Ist kein entsprechender Schlu
definiert, so wird auch keiner gesetzt. Es ist also zu empfehlen, zu
jeder bei @ANREDEN verwendeten Stufe und zu mindestens einer
@SONST-Stufe mindestens einen Schlu
zu definieren.
Es ist au
erdem m
glich, Schlu
e ohne Stufe zu definieren. Diese
werden dann - nach M
glichkeit - verwendet, wenn kein Name ermittelt
werden konnte und auch keine @SONST-Stufe f
r diesen Fall angegeben ist.
e ohne Stufe sind nicht gleichbedeutend mit Gr
en der Stufe 0!
Es sind an beliebigen Stellen Kommentarzeilen erlaubt.
3 Das Nickname-Schl
sselwort @NAMEN
? @NAMEN
Es folgen zeilenweise Namenseintr
ge, die als C-Strings interpretiert
werden. Sie besitzen folgenden Aufbau:
#\begin{center}
#\emph{Adresse}\cmd{t}\emph{Bemerkung}\cmd{t}\emph{Realname}\cmd{t}%
#\emph{Nickname}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer}
#\end{center}
@{I}Adresse@{i}\t@{I}Bemerkung@{i}\t@{I}Realname@{i}\t@{I}Nickname@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i}
wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet
werden kann.
`Adresse` steht f
r eine Mailadresse. Dieser Eintrag ist zwingend. Beim
Vergleich wird nicht zwischen Gro
- und Kleinbuchstaben unterschieden.
Regul
re Ausdr
cke sind an dieser Stelle jedoch nicht m
glich.
`Bemerkung` kann frei verwendet werden. Der dort eingesetzte Text wird
beim Einlesen der Nicknamedatei ignoriert.
`Realname` gibt den tats
chlichen Namen des zur `Adresse` geh
renden
Empf
ngers an. Dies ist z.B. bei InterNet-Adressen, bei denen der Name
u.U. nicht direkt der Adresse entnommen werden kann, sehr n
tzlich. Bei
der sp
teren Betrachtung der Realnames wird davon ausgegangen, da
alles
vor dem letzten Leerzeichen der Vorname und alles danach der Nachname
ist (dar
ber hinaus findet noch eine Erkennung auf Adelstitel statt).
Wenn kein `Realname` angegeben ist, wird versucht, einen Namen aus der
Adresse zu gewinnen. Bei MAUS- und Fido-Adressen ist das kein Problem.
Bei Internet-Adressen ist es jedoch nur in den seltensten F
llen korrekt
glich (z.B. X500).
`Nickname` steht f
r einen Spitznamen. Ist er angegeben, so wird er bei
den Anreden anstelle aller Ersatzvariablen verwendet. Fehlt er, so wird
der `Realname` wichtig.
`Stufe` gibt an, welche Stufen der Anreden (und Schlu
tze) verwendet
werden d
rfen. Es wird zuf
llig eine Anrede (und ein Schlu
satz) aus
denen der erlaubten Stufen ausgew
hlt. Es sind entweder einzelne Stufen
oder Bereiche (z.B. "2..5" oder "..5" oder "2..") erlaubt. Mehrere
Angaben k
nnen, durch Kommata voneinander getrennt, kombiniert werden
(z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret, so bedeutet dies,
alle Stufen au
er den angegeben verwendet werden d
rfen.
`Footer` gibt an, aus welcher Datei der Footer gelesen werden kann. An
dieser Stelle darf entweder ein Footer-Alias (siehe @FOOTER) oder direkt
der Dateiname (Backslashverdoppelung wegen Interpretation als C-String
nicht vergessen!) verwendet werden.
Einzelne Felder im Namenseintrag d
rfen leer sein. Der Namenseintrag
endet am Zeilenende.
Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden.
Es sind an beliebigen Stellen Kommentarzeilen erlaubt.
3 Das Nickname-Schl
sselwort @GRUPPEN
? @GRUPPEN
Es folgen zeilenweise Gruppeneintr
ge, die als C-Strings interpretiert
werden. Sie besitzen folgenden Aufbau:
#\begin{center}
#\emph{Gruppe}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer}
#\end{center}
@{I}Gruppe@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i}
wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet
werden kann.
Es werden damit analog zu @NAMEN und @SONST Voreinstellungen f
einzelne Gruppen getroffen. Diese Voreinstellungen gelten immer dann,
wenn kein entsprechender Eintrag bei @NAMEN gefunden wurde. F
Schlu
e gilt er au
erdem auch, wenn kein Name bzw. kein Empf
ermittelt werden konnte.
r Gruppen, f
r die keine Voreinstellung getroffen wurde oder die
Anrede- und Gru
-Stufe 0 ist, werden die Einstellungen von @SONST
verwendet. Die Verwendung einer Pseudogruppe "Pers
nliche" ist m
glich.
Beim Vergleich der angegebenen Gruppennamen mit dem Gruppennamen aus der
Mail wird nicht zwischen Gro
-/Kleinschreibung unterschieden. Au
erdem
werden alle Zeichen au
er Buchstaben und Ziffern - entsprechend der
aktuellen Maus-Dokumentation - gleich behandelt (CAT, Version 2.63,
macht das leider nicht).
Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung z.B.
bei Dateinamen nicht vergessen!). `Gruppe` ist jedoch kein regul
Ausdruck!
3 Das Nickname-Schl
sselwort @ADRESSDATEI
? @ADRESSDATEI
In der n
chsten Zeile mu
ein Dateiname folgen. Aus dieser Datei werden
dann die Namenseintr
ge gelesen. Dabei werden die Zeilen nicht als
C-Strings interpretiert, sondern unver
ndert
bernommen. Das
Tabulatorzeichen mu
also als solches enthalten sein. Vorteil dieser
Methode ist, da
direkt die CAT-Adre
datei verwendet werden kann. Die
einzelnen Felder ab `Bemerkung` k
nnen dort in der Hinweiszeile unter
dem Adre
eintrag angegeben werden. Das Tabulatorzeichen ist im
CAT-Dialog mit CTRL-I einzugeben.
Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden. Derzeit
ist auch nur eine Adre
datei m
glich und erlaubt.
Die Zeile, die unmittelbar auf die Zeile mit dem Schl
sselwort
@ADRESSDATEI folgt, darf keine Kommentarzeile sein. Sie w
rde in jedem
Fall als Argument (also als Name der Adre
datei) interpretiert. Danach
rfen beliebig viele Kommentarzeilen folgen.
3 Das Nickname-Schl
sselwort @SONST
? @SONST
Es folgt eine Zeile mit dem Aufbau:
#\begin{center}
#\emph{Stufe}\cmd{t}\emph{Footer}
#\end{center}
@{I}Stufe@{i}\t@{I}Footer@{i}
Diese enth
lt Voreinstellungen f
r die Anrede- und Gru
-Stufe und die
Footerdatei. Diese werden immer dann verwendet, wenn ein Name nicht in
der Nickname- oder Adre
datei eingetragen ist, oder im Eintrag keine
`Stufe` bzw. kein `Footer` angegeben wurde.
Die Zeile, die unmittelbar auf die Zeile mit dem Schl
sselwort @SONST
folgt, darf keine Kommentarzeile sein. Sie w
rde in jedem Fall als
Argument (also als voreingestellte Stufe und Footerdatei) interpretiert.
Danach d
rfen beliebig viele Kommentarzeilen folgen.
Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung bei
Dateinamen nicht vergessen!).
3 Das Nickname-Schl
sselwort @FOOTER
? @FOOTER
Es folgen Zeilen mit Alias-Definitionen f
r Footernamen. Die Zeilen
haben folgenden Aufbau:
#\begin{center}
#\emph{Alias}\cmd{t}\emph{Dateiname}
#\end{center}
@{I}Alias@{i}\t@{I}Dateiname@{i}
Das "\t" steht f
r einen Tabulator, der entweder genau in dieser Form
oder auch als echter Tabulator eingegeben werden kann. Die Zeilen werden
als C-Strings interpretiert.
Der Alias kann auch entfallen, dann sind Alias und Dateiname identisch.
Der Alias kann
berall dort verwendet werden, wo normalerweise der Name
der Footerdatei stehen m
4 Die Footerdatei
? Footerdatei
Jede Zeile der Footerdatei stellt einen einzelnen Footer dar. Jede Zeile
wird einzeln als C-String interpretiert. Durch Verwendung von "\n"
nnen somit auch mehrzeilige Footer definiert werden.
Ein kleines Footerbeispiel ist in dieser Anleitung zu finden.
Hinweis: Footer sind im MausNet nicht gern gesehen. Beschr
nken Sie sich
besser auf das Notwendigste. Ich selbst mag Footer, die st
ndig gleich
und/oder riesig gro
sind, auch absolut nicht!
Kommentare sind in Footerdateien nicht m
glich. F
r die Konvertierung
der Spr
chedatei von INTool in eine Footerdatei f
r IO-Converter liegt
das Programm `footconv.ttp` bei.
5 Das Programm 'footconv.ttp'
? footconv.ttp
#\par\null\par\noindent
Das Programm `footconv.ttp` kann Spr
chedateien im Format des INTools
in Footerdateien f
r IO-Converter umwandeln und umgekehrt.
@autorefoff
Der Aufruf geschieht mit:
@autorefon
#\begin{center}
#\verb|footconv| IO-Converter \emph{Spr"uchedatei} \emph{Footerdatei}
#\end{center}
footconv IO-Converter @{I}Spr
chedatei@{i} @{I}Footerdatei@{i}
r die Umwandlung einer Spr
chedatei in eine Footerdatei und mit:
#\begin{center}
#\verb|footconv| IN-Tool \emph{Footerdatei} \emph{Spr"uchedatei}
#\end{center}
footconv IN-Tool @{I}Footerdatei@{i} @{I}Spr
chedatei@{i}
r die Umwandlung einer Footerdatei in eine Spr
chedatei.
Achtung: Wird eine Spr
chedatei in eine Spr
chedatei oder eine
Footerdatei in eine Footerdatei gewandelt, so wird diese mit gr
Wahrscheinlichkeit besch
digt und kann nicht verlustfrei durch
ckwandlung wiederhergestellt werden.
3 Das Nickname-Schl
sselwort @ENDE
? @ENDE
Alles, was nach diesem Schl
sselwort kommt, wird ignoriert. Das
Schl
sselwort ist jedoch nicht optional, sondern mu
vorhanden sein!
Ausnahmen sind nur Dateien in denen
berhaupt keines der Schl
sselw
vorkommt.
2 Beispiele
? Beispiele
In den folgenden Kapiteln sind zwei Beispiele f
r Filterdateien und ein
Beispiel f
r eine Nicknamedatei, sowie ein Beispiel f
r eine Footerdatei
angegeben. Die beiden Filterdateien stammen urspr
nglich von Richard
Kampmann, meinem nervendsten - und damit besten - Beta-Tester.
"infile.cnf" ist als Filterdatei f
r Infiles, "outfile.cnf" - wer h
das gedacht - als Filterdatei f
r Outfiles vorgesehen.
Da IO-Converter ohnehin nach einer Datei "nickname.nik" sucht, hat die
Beispiel-Nicknamedatei hier ebenfalls diesen Namen.
Die Footerdatei tr
gt im Beispiel den Namen "footer.txt".
3 Die Beispiel-Nicknamedatei 'nickname.nik'
? nickname.nik
Hier wird eine Nicknamedatei beispielhaft eingef
hrt und erl
utert. Die
Zeilen aus der Nicknamedatei sind dabei in einer anderen Schrift
hervorgehoben bzw. einger
@(#) NickNames-Archiv
Alles, was hier vor dem @ANREDEN steht, wird einfach ignoriert.
Diese beiden Zeilen werden `Header` genannt. Sie werden beim Einlesen
der Nicknamedatei ignoriert.
@ Die Anreden
Drei Kommentarzeilen
@ANREDEN
Das Schl
sselwort @ANREDEN leitet die Anreden ein:
00 Sehr geehrte Frau $L!\n
01 Sehr geehrter Herr $L!\n
02 Hallo $F,\n
03 Morg
n $F,\n
02 Hi $F,\n
02 Servus $F,\n
Bei den Anreden wurde zun
chst eine zweistellige Stufe-Nummer angegeben.
Theoretisch h
tte dabei die f
hrende Null entfallen k
nnen. Sie dient
lediglich der
bersicht. Das Leerzeichen, das auf die Stufe-Nummer
folgt, ist ebenfalls nicht zwingend. Es wird jedoch lediglich das erste
Leerzeichen
berlesen.
Da automatisch noch ein Zeilenende zugef
gt wird, steht der letzte
Zeilenumbruch "\n" jeweils f
r eine Leerzeile.
@GR
2..3 Tsch
,\nMarkus
2,3 Bye,\nMarkus
2,3 Ciao,\nMarkus
03 Wirsing,\nMarkus
..1 Mit freundlichen Gr
en\nMarkus Kohm
Hierbei handelt es sich um die Schlu
e. Es ist ebenfalls eine Stufe
angegeben. F
r Anrede und Schlu
wird immer dieselbe Stufe
verwendet. Damit ist sichergestellt, da
Anrede und Schlu
immer
zusammenpassen. Auf der anderen Seite kann es so notwendig sein, da
mehreren Stufen zugewiesen wird (siehe die ersten drei und den
letzen Gru
Nach dem Schlu
soll keine Leerzeile folgen. Das Zeilenende wird
automatisch zugef
@NAMEN
Markus Kohm @ KA2\tIO-Converter-Autor\t\tGro
er Meister\t1..3
Richard Kampmann @ UN\t\t\tGenialer Betatester\t1,2\tBl
Es sind zwei Adressen definiert. Da es sich um MausNet-Adressen handelt,
kann der Realname entfallen. Er wird beim Einlesen der Datei aus der
Adresse gewonnen.
Es d
rfen Anreden und Schlu
tze der ersten bis dritten bzw. der ersten
und zweiten Stufe gew
hlt werden. Bei Richard Kampmann soll ein Footer
aus der Footerdatei mit dem Alias "Bl
dfug" verwendet werden.
@SONST
1\tnix
Normalerweise d
rfen nur Anreden der ersten Stufe und Footer aus der
Footerdatei mit dem Alias "nix" verwendet werden. Da eine solche Datei
nicht existiert, werden normalerweise keine Footer gesetzt.
@GRUPPEN
TeX\t\tInterNet
TeX-D-L\t\tInterNet
In den beiden Gruppen "TeX" und "TeX-D-L" soll ein Footer aus der
Footerdatei mit dem Alias "InterNet" verwendet werden. Zwischen den
beiden "\t" k
nnte noch eine Stufe f
r Anreden und Gr
e angegeben
werden. Da nicht angegeben ist, wird die bei @SONST angegebene Stufe
verwendet.
@FOOTER
dfug \t\\footer\\bauern.txt
InterNet\t\\footer\\internet.txt
tzlich\t\\footer\\footer.txt
Es sind drei Alias f
r Footerdateien definiert. Der erste verweist auf
eine Datei mit Bauernregeln, der zweite auf eine Datei mit Footern f
InterNet-Mails, der dritte auf die allgemeine Footerdatei.
Alle Footerdateien befinden sich in dem Verzeichnis "footer" der
CAT-Partition (es ist jedoch empfehlenswert, die Dateinamen auch noch
mit einer Laufwerkskennung zu versehen).
@ENDE
Dieses Schl
sselwort markiert das Ende der Nicknamedatei. Der Rest wird
berhaupt nicht mehr eingelesen:
So, das war's.
Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen Fliegen nach.
Was IO-Converter mit obiger "nickname.nik" aus einem Infile macht, ist
dem Beispiel-Infile aus dem Kapitel
ber die Beispiel-Filterdatei
"infile.cnf" zu entnehmen.
3 Die Beispiel-Filterdatei 'infile.cnf'
? infile.cnf
Hier wird eine Filterdatei f
r Infiles beispielhaft eingef
hrt und
utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen
Schrift hervorgehoben bzw. einger
Die Filterdatei stammt urspr
nglich von Richard Kampmann @ UN, der sich
jederzeit f
r Erg
nzungen interessiert.
# ======================================================
# @(#) Filterdatei f
r IO_CONVERTER II
# ======================================================
# hier: Filterdatei f
r das Infile
Es handelt sich hier um beide m
gliche Arten der Kommentare.
brigens
kann ich nur empfehlen, das what.ttp (z.B. von Julian F. Reschke) auf
diese Datei anzuwenden (die @(#)-Zeile wird dabei verwendet).
; -------------------------------------------------------------
; --- Definition der verschiedenen Filter ---
; -------------------------------------------------------------
FILTER=Umlautlangform
; Au
erdem sollen alle Paragraphzeichen zu "Par." werden:
" "Par."
Es wurde hier ein Filter zur Wandlung von Umlauten und den beiden
Sonderzeichen "
" und "
" in eine Langform definiert. Es handelt sich
hier um einen freien Filter, bei dem nur die einfache Stringersetzung
Verwendung findet.
; -------------------------------------------------------------
FILTER=TeX-Umlautlangform
" "Par."
Das selbe wie bei `Umlautlangform` mit Umlaut- und Sonderzeichenformen,
wie sie z.B. f
r LaTeX
blich sind.
; -------------------------------------------------------------
; --- Jetzt Aufruf der verschiedenen Konvertierungen ---
; -------------------------------------------------------------
PERSON=.*@.....+
!Umlautlangform
r alle Empf
nger, bei denen nach dem Klammeraffern ("AT") mehr als
vier (mindestens 5) Zeichen folgen, soll in die Umlautlangform gewandelt
werden. Dazu wird f
r diese User der freie Filter `Umlautlangform`
aktiviert.
Der verwendete regul
re Ausdruck bedeutet im einzelnen: beliebige
Zeichen in beliebiger Anzahl (".*") gefolgt von einem Klammeraffen ("@")
gefolgt von vier beliebigen Zeichen ("....") gefolgt von mindestens einem
weiteren, beliebigen Zeichen (".+").
GRUPPE=.*\\.de
!Umlautlangform
r alle Gruppen, deren Namen aus beliebig vielen Zeichen, gefolgt von
".de", bestehen, soll ebenfalls der freie Filter `Umlautlangform`
aktiviert werden.
Vielleicht fragen Sie sich jetzt, warum der Backslash doppelt verwendet
wird. Die Antwort ist sehr einfach. Das Argument ".*\\.de" wird zun
als C-String interpretiert. Das Ergebnis ist dann zun
chst ".*\.de".
Dieses wird nun als regul
rer Ausdruck interpretiert. Dabei mu
Punkt von ".de" gequotet werden, weil der nichtgequotete Punkt f
r jedes
beliebige Zeichen steht.
GRUPPE=TEX-D-L
!TeX-Umlautlangform
Da es sich bei der Gruppe TEX-D-L um eine Mailingliste aus dem InterNet
handelt, funktioniert die - in diesem Fall besonders wichtige -
Umlautwandlung nicht immer. Au
erdem haben sich in jener Gruppe Umlaute
nach TeX-Konvention eingeb
rgert. Deshalb aktivieren wir f
r diese
Gruppe die entsprechende Wandlung.
GRUPPE=TEX
!TeX-Umlautlangform
siehe Gruppenfilter `TEX-D-L`.
; Jetzt kommt
berfl
ssiger Quatsch
ZEILE=:TeX Hallo.*
:TeX Hallo=Hallo
!TeX-Umlautlangform
Da es in Kommentaren (au
ber den Infoblock) keine eindeutige
Gruppen- bzw. Empf
ngerzuordnung gibt (zumindest bis CAT 2.63), wird
hier die TeX-Umlautlangform auch noch explizit
ber eine Infile-Zeile,
die mit ":TeX Hallo" beginnt, aktiviert. Das "TeX Hallo" aus der
Textzeile wird au
erdem
ber die einfache Stringersetzung in "Hallo"
gewandelt.
An dieser Stelle m
chte ich nocheinmal darauf hinweisen, da
Zeile-Filter nicht Mail-Text-Zeilen sondern komplette Zeilen aus dem
fertigen Infile betrachtet. Die Zeilenkennung wird also in jedem Fall
mitber
cksichtigt. Deshalb steht hier am Anfang des Arguments
":TeX Hallo.*" der Doppelpunkt, der in Infiles am Anfang jeder Textzeile
steht.
Dieser Zeile-Filter ist hier nur aus Demonstrationsgr
nden zu finden.
Die Aktivierung des freien Filters `TeX-Umlautlangform`, kann wesentlich
einfacher mit Hilfe des Infoblocks und des Gruppenfilters `TEX`
erfolgen.
ALLE
-Anrede=hallo
-Anrede=hi
-Controlfilter=true
-Filterschutz=an
-Gru
=true
r alle Mails soll die automatische Anrede eingeschaltet werden. Im
Regelfall wird f
r die eigentliche Anrede wohl die Nicknamedatei
verwendet werden. Es mu
jedoch mindestens eine der festeingebauten
Anreden aktiviert werden, wenn
berhaupt automatische Anreden verwendet
werden sollen. Eine dieser aktivierten, festeingebauten Anreden wird
dann in dem Fall verwendet, da
kein Empf
ngername auszumachen ist.
(Oh, welch ein Absatz!)
PERSON=.*
-Footer=ja
In allen PMs sollen Footer erlaubt sein.
Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Infile
macht, ist dem Kapitel mit einem Beispiel-Infile zu entnehmen.
3 Die Beispiel-Footerdatei 'footer.txt'
? footer.txt
Hier wird eine Footerdatei beispielhaft eingef
hrt und erl
utert. Die
Zeilen aus der Footerdatei sind dabei in einer anderen Schrift
hervorgehoben bzw. einger
Dieser Footer wurde mit IO-Converter gesetzt.
IO-Converter-Beispiel f
r\nzweizeilige Footer.
Die erste Zeile definiert einen sehr einfachen einzeiligen Footer. Die
zweite Zeile definiert einen ebenso einfachen aber zweizeiligen Footer.
Die zweite Footer-Zeile beginnt hinter dem "\n".
Der Zeilenumbruch am Ende eines Footers wird automatisch eingef
4 Was IO-Converter aus dem Beispiel-Infile macht
? Beispiel-Infile
Wir gehen hier davon aus, da
IO-Converter mit:
io_conv.ttp -f infile.cnf -n nickname.nik infile.txt
aufgerufen wird. Bei "infile.cnf" und "nickname.nik" handelt es sich
dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen
Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp)
stehen m
ssen. Da "nickname.nik" gleichzeitig der voreingestellte
Nicknamedatei-Name ist, k
nnte der Aufruf auch:
io_conv.ttp -f infile.cnf infile.txt
lauten (beim Aufruf als CAT-I/O-Filter entsprechend).
Die Zeilen aus dem Infile sind dabei in einer anderen Schrift
hervorgehoben bzw. einger
#HEAD
:Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT
:eingelesen werden sollte.
:CAT bis Version 2.63 weigert sich gl
cklicherweise auch dagegen.
Falls es jemanden interessiert: Der Trick liegt darin, da
kein
LOG-Block vorhanden ist.
"#HEAD" kommt nat
rlich normalerweise in einem Infile nicht vor.
#ID0815
Dies ist tats
chlich eine g
ltige ID. Die Maus-Doku schreibt nicht vor,
die ID einer PM mit einem "P" und die ID einer AM mit einem "A"
beginnt. Sie schreibt auch nicht vor, da
die ID ein "AT" (Klammeraffen)
gefolgt vom Mausk
rzel des Absenders enth
ARichard Kampmann @ UN
ber die "A"-Zeile wird der Empf
nger angegeben. Damit ist eindeutig
ausgesagt, da
es sich um eine PM handelt.
WDemonstration von IO-Converter
Die "W"-Zeile definiert den Betreff (das sogenannte Subject). Auf diese
Zeile w
rde ein eventueller RE- oder LALL-Filter wirken.
E199506070000
Datum und Uhrzeit im Maus-Format.
:Dies war einmal die erste Textzeile der Mail.
brigens werden hier Anrede, Schlu
und Footer automatisch gesetzt.
:---
Das war jetzt der eigentliche Text. F
r die Maus ist jede Zeile ein
Absatz!
#ID0816
GTEX
Die "G"-Zeile gibt die Zielgruppe an. Es handelt sich damit eindeutig um
eine AM.
WDemonstration von IO-Converter
E199506070000
:Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
:Welche Auswirkungen das auf '
' und '
' hat, kann man
:hier sehen.
:Anrede und Schlu
werden automatisch gesetzt.
#ID0817
GTEX
WDemonstration von IO-Converter
E199506070000
:* Name: Richard Kampmann @ UN
Es handelt sich hier um eine Gruppenmail, bei der die Empf
ngeradresse
r die Anrede explizit angegeben ist. Die `einzelne` Leerzeile geh
zum Infoblock und wird ebenfalls gel
scht. Hier wurde als Argument der
"* Name: "-Zeile die Mailadresse verwendet. Weiter unten wird statt
dessen der Realname direkt eingesetzt.
:Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
:Welche Auswirkungen das auf '
' und '
' hat, kann man
:hier sehen.
:Anrede und Schlu
werden automatisch gesetzt, wobei der
:Infoblock Verwendung findet.
#ID0818
-ID0816
Es handelt sich hier um einen Kommentar zu einer andere Mail. Es sind
weder Empf
nger noch Zielgruppe angegeben (CAT bis Version 2.63 tut das
einfach nicht, obwohl es inzwischen erlaubt ist). Daher kann zun
nicht festgestellt werden, ob es sich um eine AM oder PM handelt.
WDemonstration von IO-Converter
E199506070000
:* Gruppe: TEX
ber den Infoblock wurde nun bestimmt, da
die Mail wie eine AM der
Gruppe "TEX" behandelt werden soll.
:Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
:TeX zugeordnet werden.
:Welche Auswirkungen das auf '
' und '
' hat, kann man
:hier sehen.
:Anrede und Schlu
werden automatisch gesetzt.
#ID0819
-ID0816
WDemonstration von IO-Converter
E199506070000
:* Gruppe: TEX
:* Name: Richard Kampmann
Hier wurde zus
tzlich bestimmt, da
es zwar eine AM der Gruppe "TEX"
sein soll, die Anrede (und nat
rlich auch Schlu
und Footer) ist
aber entsprechend dem Empf
nger "Richard Kampmann" zu setzen. Ob
Anrede, Gru
und Footer gesetzt werden, h
ngt jedoch von den Filtern f
die Gruppe "TEX" ab. Das h
rt sich jetzt komplizierter an, als es ist.
:Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
:TeX zugeordnet werden.
:Welche Auswirkungen das auf '
' und '
' hat, kann man
:hier sehen.
:Anrede und Schlu
werden automatisch gesetzt, wobei der
:Infoblock Verwendung findet.
:---
#ID0820
AMarkus_Kohm@ka2.maus.de
Hier noch ein Beispiel einer Mail, die eine InterNet-Adresse besitzt. In
Wirklichkeit ist das zwar ein Empf
nger in einer Maus, die Adressierung
erfolgt aber via InterNet.
WDemonstration von IO-Converter
E199506070000
:Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
:erfahren.
:Welche Auswirkungen das auf '
' hat, kann man hier sehen.
:Es gibt aber auch die M
glichkeit, seine Umlaute zu verdeutlichen.
brigens sehen meine Originalumlaute hier so aus:
:$begin
und das Sonderzeichen:
:$end
:Anrede und Schlu
werden automatisch gesetzt. Mal sehen, ob
:es auch einen Footer gibt.
:---
Schauen wir uns jetzt an, was IO-Converter daraus macht. Zun
chst einmal
die Ausgaben von IO-Converter:
IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun 6 1995
Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0816
Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0818
Mit diesen Warnungen wird darauf hingewiesen, da
bei den Mails
"#ID0816" und "#ID0818" keine Namen f
r die Anrede ermittelt werden
konnten. Es wurde daher auf die Alternativen ohne Name ausgewichen.
Und wie sieht das Infile nach der Wandlung nun aus:
#HEAD
:Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT
:eingelesen werden sollte.
:CAT bis Version 2.63 weigert sich gl
cklicherweise auch dagegen.
#ID0815
ARichard Kampmann @ UN
WDemonstration von IO-Converter
E199506070000
:Servus Genialer Betatester,
Die Anrede wurde zuf
llig aus den m
glichen ausgew
:Dies war einmal die erste Textzeile der Mail.
brigens werden hier Anrede, Schlu
und Footer automatisch gesetzt.
:Tsch
:Markus
Der Schlu
wurde zuf
llig aus den m
glichen ausgew
:---
:Fri
t die Kuh am Liebsten Klee,
:Tut's dem Bauern im Geldbeutel weh.
Der zweizeilige Footer entstammt der Datei mit den dummen Spr
chen und
wurde ebenfalls zuf
llig ausgew
#ID0816
GTEX
WDemonstration von IO-Converter
E199506070000
:Hallo,
Hier haben wir eine der Mails, f
r die kein Empf
nger gefunden werden
konnte, weshalb eine namenlose (interne) Anrede verwendet wurde.
:Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
:Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
:hier sehen.
:Anrede und Schlu"sgru"s werden automatisch gesetzt.
:Mit freundlichen Gr"u"sen
:Markus Kohm
Wir erinnern uns, da
in der Gruppe "TEX" aufgrund der Nicknamedatei nur
e der voreingestellten Stufe 1 verwendet werden d
rfen. Das ist
genau dieser eine Gru
#ID0817
GTEX
WDemonstration von IO-Converter
E199506070000
:Hi Genialer Betatester,
:Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
:Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
:hier sehen.
:Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der
:Infoblock Verwendung findet.
:Tsch"u"s,
:Markus
Hier wurde nicht der Gru
der Stufe 1 verwendet, obwohl es sich um
dieselbe Gruppe handelt. Durch Angabe eines Namens wurden jedoch die
r diesen Namen aktiviert.
#ID0818
-ID0816
WDemonstration von IO-Converter
E199506070000
:Hi,
:Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
:TeX zugeordnet werden.
:Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
:hier sehen.
:Anrede und Schlu"sgru"s werden automatisch gesetzt.
:Mit freundlichen Gr"u"sen
:Markus Kohm
Das war die zweite Mail, f
r die kein Empf
nger festgestellt werden
konnte. Da jedoch die Gruppe im Infoblock angegeben war, konnten die
entsprechenden Filter und die Gru
einschr
nkungen verwendet werden.
#ID0819
-ID0816
WDemonstration von IO-Converter
E199506070000
:Hallo Genialer Betatester,
:Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
:TeX zugeordnet werden.
:Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
:hier sehen.
:Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der
:Infoblock Verwendung findet.
:Tsch"u"s,
:Markus
:---
Es wurde kein Footer gesetzt, weil es sich laut Infoblock um eine AM
handelt. Die Angabe eines Namens im Infoblock gen
gt nicht, um den
Filter zu aktivieren, der Footer einschaltet. Statt dessen m
te ein
Empf
nger definiert werden ("An" statt "Name").
#ID0820
AMarkus_Kohm@ka2.maus.de
WDemonstration von IO-Converter
E199506070000
:Sehr geehrter Herr Kohm!
:Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
:erfahren.
:Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen.
:Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen.
:Uebrigens sehen meine Originalumlaute hier so aus:
und das Sonderzeichen:
Die Markierungen "$begin" und "$end" f
r den zu sch
tzenden Block wurden
wie gew
nscht entfernt. Die Zeile dazwischen wurde eindeutig nicht
konvertiert.
:Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob
:es auch einen Footer gibt.
:Mit freundlichen Gruessen
:Markus Kohm
:---
Auch diese Mail wird nicht mit einem Footer versehen, weil die
Standard-Footerdatei mit dem Alias "nix" nicht existiert (und auch keine
Datei mit dem Namen "nix"), also auch kein Footer daraus gelesen werden
kann.
Das war's. Diese Beispiele k
nnen nat
rlich nur einige Grundf
higkeiten
von IO-Converter demonstrieren. F
r die Demonstration aller
glichkeiten br
uchte man ein Infile von einigen 10 KByte Gr
3 Die Beispiel-Filterdatei 'outfile.cnf'
? outfile.cnf
Hier wird eine Filterdatei f
r Outfiles beispielhaft eingef
hrt und
utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen
Schrift hervorgehoben bzw. einger
Die Filterdatei stammt urspr
nglich von Richard Kampmann @ UN, der sich
jederzeit f
r Erg
nzungen interessiert.
# ======================================================
# @(#) Filterdatei f
r IO_CONVERTER II
# ======================================================
# hier: Filterdatei f
r das Outfile
Es handelt sich hier um die erste Art der m
glichen Kommentare. Wie hier
zu sehen ist, sind auch Leerzeilen erlaubt.
; -------------------------------------------------------------
; --- Definition der verschiedenen Filter ---
; -------------------------------------------------------------
######## Generelle Wandlung f
r alle Mails ####################
FILTER=General
-RE-Filter=on
-Controlfilter=on
-Leermailfilter=on
-Filterschutz=on
Dieser freie Filter wird sp
ter f
r alle Mails aktiviert. Er sorgt
r, da
alle Formen von "RE" im Betreff entfernt werden,
Steuerzeichen aus dem Mails gel
scht werden (weil CAT bis 2.63 sonst
glicherweise mit Bomben um sich wirft), leere Mails eine Textzeile
bekommen (weil CAT zumindest bis Version 2.63 sonst Probleme mit dem
Einsortieren bekommt), bestimmte Mailteile wie UUE-codierte Zeilen nach
glichkeit erkannt und vor Filterung gesch
tzt werden und da
falsche Akzent "
" in ein Hochkomma gewandelt wird.
######## in TeX-Gruppen TeX-Umlaute zur
ckwandeln #############
FILTER=TeX-Umlautr
ckwandelung
:"a=
:"o=
:"u=
:"s=
:"A=
:"O=
:"U=
:\\"a=
:\\"o=
:\\"u=
:\\"s=
:\\"A=
:\\"O=
:\\"U=
:\\S=
;Achtung! Bei der ersten Art zu wandeln k
nnen Umlaute und Anf
hrungs-
;striche gefolgt von einem Buchstaben nicht unterschieden werden! Wenn
;das jemanden st
rt, mu
er den ersten Block l
schen. L
sungen f
r das
;Problem werden jederzeit gerne entgegengenommen ...
Hier hat Richard eigenlich schon ausreichend kommentiert ...
######## Durch das Gate nach MIME zerhackte Mails reparieren ##
; Achtung - dieser Filter ist nur duch Ausprobieren ermittelt!
FILTER=MIME-Conversion
Die MIME-Conversion ist im InterNet relativ weit verbreitet. Sie
glicht u.a. die 7Bit-Codierung von Zeichen mit einem 8Bit-Code.
"=E4" "
"=F6" "
"=FC" "
"=C4" "
"=D6" "
"=DC" "
"=DF" "
"=9E" "
; ... und nun noch "exotische":
; "weicher" Zeilenumbruch:
"=\n" ""
Hier wird mit der erweiterten String-Ersetzung ein Gleichheitszeichen,
das am Zeilenende steht, samt dem Zeilenumbruch entfernt. Es soll nicht
verschwiegen werden, da
dies zu einer Warnung f
hren kann, wenn ein
Gleichheitzeichen am Zeilenende vor einen zusch
tzenden Block oder am
Mailende steht. Da dieser Fehler abgefangen wird, kommt es jedoch zu
keinen Fehlfunktionen.
; Punkt am Zeilenanfang:
"=2E" "."
; Punkt als 'Item'-Kennzeichen bei Aufz
hlungen
"=F9" "
; codiertes Gleichheitszeichen (kein Witz!)...
"=3D" "="
; ... to be continued ...
; Erg
nzungen und Korrekturen bitte an den Autor melden, damit
; der Filter in k
nftigen Versionen erg
nzt werden kann!
Die MIME-Conversion fordert h
chste Leistung von IO-Converter und war
ein Grund f
r die neue Version.
###############################################################
; -------------------------------------------------------------
; --- Aufruf der verschiedenen Konvertierungen ---
; -------------------------------------------------------------
ALLE
!General
Wie versprochen die Aktivierung des freien Filters `General`.
PERSON=.*@.....+
!MIME-Conversion
Die MIME-Conversion ist in erster Linie f
r InterNet-Absender
interessant. Also wird sie wieder f
r Absender aktiviert, bei denen nach
dem Klammeraffen (AT) mindestens 5 Zeichen folgen.
GRUPPE=TEX-D-L
!TeX-Umlautr
ckwandelung
GRUPPE=TEX
!TeX-Umlautr
ckwandelung
Die TeX-Umlautr
ckwandlung wird nur in den Gruppen TEX-D-L und TEX
tigt.
###############################################################
Das war's.
Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Outfile
macht, ist dem folgenden Kapitel mit einem Beispiel-Outfile zu entnehmen.
4 Was IO-Converter aus dem Beispiel-Outfile macht
? Beispiel-Outfile
Wir gehen hier davon aus, da
IO-Converter mit:
io_conv.ttp -f outfile.cnf -n nickname.nik outfile.txt
aufgerufen wird. Bei "outfile.cnf" und "nickname.nik" handelt es sich
dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen
Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp)
stehen m
ssen. Da "nickname.nik" gleichzeitig der voreingestellte
Nicknamedatei-Name ist, k
nnte der Aufruf auch:
io_conv.ttp -f outfile.cnf outfile.txt
lauten (beim Aufruf als CAT-I/O-Filter entsprechend). Die Nicknamedatei
wird hier lediglich geladen, damit IO-Converter sich nicht
ber das
Fehlen selbiger beschwert. Im Grunde k
nnte man aber gut auf sie
verzichten. In diesem Fall k
nnte man dann z.B. mit `-n no` eine nicht
existierende Nicknamedatei angeben (und daf
r eine entsprechende Warnung
ernten). Es w
re ebenfalls denkbar, eine leere Nicknamedatei anzugeben.
Diese w
rde nahezu ohne Zeitverz
gerung "gelesen" (und eine Warnung
rde ebenfalls nicht ausgegeben werden). Eine nahezu leere Datei kann
man z.B. mit CAT erzeugen, indem man eine nicht vorhandene Datei
ffnet,
die Leertaste und anschlie
end die Backspace-Taste dr
ckt und die Datei
schlie
Als Outfile wird hier das im Infile-Beispiel erzeugte Infile verwendet,
das zus
tzlich um die folgende Mail erweitert wurde (au
erdem sind
selbstverst
ndlich "V"-Zeilen sowie bei den Kommentaren auch "A"- bzw.
"G"-Zeilen enthalten, die die Maus automatisch setzt.). Die Zeilen aus
dem Outfile sind wieder durch eine gesonderte Schrift hervorgehoben bzw.
einger
#ID0821
AMarkus Kohm @ KA2
VMarkus_Kohm@ka2.maus.de
WRe^2:Demonstration von IO-Converter
E199506070000
:Hallo Markus,
:Diese Mail demonstriert, wie der=
: MIME-Filter im allgemeinen so f=
:unktioniert.
:Es ist sicher interessant, das e=
:inmal im Detail zu sehen.
:R=E4te, R=FCbe, R=F6llchen, =C4p=
:fel, =D6se, =DCbel, Na=DF.
:Na wie war
:Gru=DF
: Markus.
Schauen wir uns zun
chst die Ausgabe an von IO-Converter an:
IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun 6 1995
Es wurde offenbar kein Fehler gefunden. Also wenden wir uns dem
erzeugten Outfile zu:
#HEAD
:Dies ist ein Outfile-Beispiel, das niemals als Outfile in CAT
:eingelesen werden sollte.
:CAT bis Version 2.63 weigert sich gl
cklicherweise auch dagegen.
#ID0815
ARichard Kampmann @ UN
VMarkus Kohm @ KA2
WDemonstration von IO-Converter
E199506070000
:Servus Genialer Betatester,
:Dies war einmal die erste Textzeile der Mail.
brigens werden hier Anrede, Schlu
und Footer automatisch gesetzt.
:Tsch
:Markus
:---
:Fri
t die Kuh am Liebsten Klee,
:Tut's dem Bauern im Geldbeutel weh.
Diese erste Mail kam wie gew
nscht ohne weitere
nderung an.
#ID0816
GTEX
VMarkus Kohm @ KA2
WDemonstration von IO-Converter
E199506070000
:Hallo,
:Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
:Welche Auswirkungen das auf '
' und 'Par.' hat, kann man
:hier sehen.
:Anrede und Schlu
werden automatisch gesetzt.
:Mit freundlichen Gr
:Markus Kohm
Es ist gelungen, die TeX-Umlaute wieder in normale Umlaute
ckzuwandeln. Selbiges gilt f
r die Mails ID0817, ID0818 und ID0819,
weshalb ich diese hier aus dem Beispiel entfernt habe.
#ID0820
AMarkus_Kohm@ka2.maus.de
VMarkus Kohm @ KA2
WDemonstration von IO-Converter
E199506070000
:Sehr geehrter Herr Kohm!
:Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
:erfahren.
:Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen.
:Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen.
:Uebrigens sehen meine Originalumlaute hier so aus:
und das Sonderzeichen:
:Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob
:es auch einen Footer gibt.
:Mit freundlichen Gruessen
:Markus Kohm
:---
In der InterNet-Mail wurde nichts weiter ver
ndert.
#ID0821
AMarkus Kohm @ KA2
VMarkus_Kohm@ka2.maus.de
WDemonstration von IO-Converter
E199506070000
:Hallo Markus,
:Diese Mail demonstriert, wie der MIME-Filter im allgemeinen so funktioniert.
:Es ist sicher interessant, das einmal im Detail zu sehen.
te, R
be, R
llchen,
pfel,
bel, Na
:Na wie war's?
:Gru
: Markus.
Sowohl die MIME-Zeilenumbr
che, als auch die Umlaute wurden wundersch
ckgewandelt. Damit ist die Mail wesentlich besser lesbar. U.U. w
es sinnvoll, zum MIME-Filter zus
tzlich die Option "-Zeilenl
nge" zu
verwenden, damit keine au
erodentlich langen Zeilen entstehen k
nnen.
Ich hoffe, dieses Beispiel hat die F
higkeiten von IO-Converter
zumindest ansatzweise demonstriert.
1 Ausblick
? Ausblick
IO-Converter ist noch lange nicht fertig. Was Sie derzeit in H
(bzw. auf der Platte/Diskette) haben, ist im Prinzip nicht mehr als eine
- allerdings schon sehr brauchbare - Vorabversion. Viele weitere
glichkeiten sind geplant. Einige davon werden irgendwann umgesetzt
werden, andere werden wieder in der Versenkung verschwinden. Anregungen
sind jederzeit willkommen; was letztlich implementiert wird, h
ngt von
der Resonanz und meiner Laune ab. Angedacht ist bisher:
#\begin{itemize}
#\item Unterst"utzung externer Filter (z.B. Daemons)
#\item Fehlerausgabe im Klartext statt mit Nummern
#\item Footertrennlinie optional automatisch zuf"ugen
#\item Option zur Behandlung von "`war:"' in Betreffs
#\item Priorit
tenoptionen f
r Bevorzugung von Eintr
gen im Infoblock
# oder im Mailheader
#\item Mehrfachanwendung der Filter auf eine Mail
#\item Aktivierung von Filtern
ber den Infoblock
#\item Deaktivierung von Filtern innerhalb von Filtern analog zur
# Aktivierung
#\item Deaktivierung von Filtern
ber den Infoblock
#\item Realisierung der Funktionalit
t von IFI
#\item \dots
#\end{itemize}
- Unterst
tzung externer Filter (z.B. Daemons)
- Fehlerausgabe im Klartext statt mit Nummern
- Footertrennlinie optional automatisch zuf
- Option zur Behandlung von "war:" in Betreffs
- Priorit
tenoptionen f
r Bevorzugung von Eintr
gen im Infoblock
oder im Mailheader
- Mehrfachanwendung der Filter auf eine Mail
- Aktivierung von Filtern
ber den Infoblock
- Deaktivierung von Filtern innerhalb von Filtern analog zur
Aktivierung
- Deaktivierung von Filtern
ber den Infoblock
- Realisierung der Funktionalit
t von IFI
- ...
Wenn ich sehe, was andere Filter, f
r die tats
chlich Geld verlangt
wird, so bieten - oder auch nicht bieten -, f
llt mir bestimmt noch eine
Menge ein. Auf der anderen Seite mu
IO-Converter den Vergleich mit
manchem Shareware-Filter sicher nicht f
rchten.
Wer
brigens eine Freeware-GEM-Shell f
r IO-Converter programmieren
will, kann sich gerne bei mir melden.
1 CAT-I/O-Filter
? CAT-I/O-Filter
Hier sind nur Filter aufgef
hrt, die frei (incl. Postcardware) und mir
bekannt sind. Weitere freie Filter k
nnen jederzeit gerne aufgenommen
werden.
? CAT-Rondo
#\minisec{CAT-Rondo {\normalfont\sffamily von Matthias St
rmer @ KA2}}
@{B}CAT-Rondo@{b} von Matthias St
rmer @@ KA2
Rundschreibengenerator f
r CAT. Erzeugt aus einer Message mit speziellem
Adressaten und einer Adre
datei entsprechend viele Kopien der Message,
wobei eingeschr
nkt Serienbrieffunktionen zur Verf
gung stehen.
Geeignet f
r Messages.
? FixIO
#\minisec{FixIO {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}FixIO@{b} von Markus Kohm @@ KA2
Dieser Filter ersetzt einzelne Zeichen durch Zeichenketten, Tabulatoren
durch die gew
nschte Anzahl an Leerzeichen (bzw. bis zur gew
nschten
Position durch Leerzeichen) und umbricht den Text auf Wunsch. Dieser
Filter ist bei Verwendung von `IO-Converter` nahezu
berfl
ssig.
Geeignet f
r In- und Outfile.
? IFI
#\minisec{IFI \{\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}IFI@{b} von Markus Kohm @@ KA2
Urspr
nglich gedacht als universeller Infile-Filter. Kann aber
theoretisch auch auf Outfiles angewandt werden.
ber spezielle
Aktivierungsbefehle im Mailtext k
nnen Mailtexte bzw. Teile daraus an
andere Programme
bergeben werden. Nach der Bearbeitung werden die Teile
dann in der bearbeiteten Form wieder eingesetzt. Es ist so auch m
glich,
Teile zu l
schen oder neu zuzuf
Geeignet f
r In- und Outfile.
? InterNet-to-Maus-Gate
? I2M-Gate
#\minisec{InterNet-to-Maus-Gate {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}InterNet-to-Maus-Gate@{b} von Markus Kohm @@ KA2
Erzeugt aus einer InterNet-mailbox-Datei ein Outfile oder f
gt die Mails
entsprechend in ein existierendes Outfile ein, so da
sie von CAT
importiert werden k
nnen. Es wird
ber eine spezielle Form des Absenders
und eine "Reply to"-Angabe daf
r gesorgt, da
die Mails auch innerhalb
der normalen Database
ber die Maus beantwortet werden k
nnen.
berlange
Mails werden automatisch aufgeteilt.
Dieses Programm ist nicht
ffentlich, sondern nur auf Nachfrage
ltlich.
Geeignet f
r InterNet-mailbox-Datei (und Outfile).
? INTool
#\minisec{INTool {\normalfont\sffamily von Ole Pahl @ IZ}}
@{B}INTool@{b} von Ole Pahl @@ IZ
Infile-Utility, das
ber bestimmte Strings in einer Mail Anreden setzen,
Dateien einf
gen und zuf
llige Spr
che aus einer Datei ausw
hlen und
einsetzen kann. Die Funktionalit
t wird - allerdings auf andere Art -
auch von IO-Converter erbracht.
Geeignet f
r Infile.
#\minisec{IO-Converter {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}IO-Converter@{b} von Markus Kohm @@ KA2
Dieser Filter vereinigt diverse M
glichkeiten. Er kann selektiv Zeichen
und Zeichenfolgen innerhalb von Mails ersetzen, verschiedene Formen von
"RE" und "LALL" aus der Betreffzeile entfernen, Anreden, Gr
e und
Footer ins Mails einbauen u.v.m.
Geeignet f
r In- und Outfiles.
? Jelly Cat
#\minisec{Jelly Cat {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}Jelly Cat@{b} von Markus Kohm @@ KA2
Dieser Filter sorgt bei einger
ckten Textbl
cken in Messages automatisch
r, da
diese gesch
tzt werden, also feste Zeilenenden bekommen und
von der Maus nicht mehr auf eine gr
ere Breite umbrochen werden k
nnen.
Sehr n
tzlich, um zerhackte Zeilen, wie sie z.B. in Atari.News
fter zu
sehen sind, zu vermeiden. Dar
ber hinaus kann Jelly Cat ab Version 1.1
den Infoblock automatisch setzen!
Geeignet f
r Messages.
? Katzenklo
#\minisec{Katzenklo {\normalfont\sffamily von Thomas Neumann @ DU}}
@{B}Katzenklo@{b} von Thomas Neumann @@ DU
Der Welt bester Laberfilter f
r CAT (Freeware bis Version 1.07).
Geeignet f
r Outfile.
? T2D2T
? TOS2DOS2TOS
#\minisec{T2D2T {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}T2D2T@{b} von Markus Kohm @@ KA2
Ersetzt das DOS-
durch das TOS-
und umgekehrt (je nach Wunsch). Dieser
Filter ist z.B. n
tzlich, wenn eine Quark keine Umlautkonvertierung f
Atari anbietet. Der Filter ist bei Verwendung von IO-Converter
berfl
ssig.
Geeignet f
r In- und Outfile.
1 CAT-Zusatzprogramme
? CAT-Zusatzprogramme
Hier sind nur Programme und Dateien aufgef
hrt, die frei (incl.
Postcardware) und mir bekannt sind. Weitere freie Programme und Dateien
nnen jederzeit gerne aufgenommen werden.
? Bingo
#\minisec{Bingo {\normalfont\sffamily von Ingo Pl
ckhahn @ DU}}
@{B}Bingo@{b} von Ingo Pl
ckhahn @@ DU
`Cat-Stat` mit GEM-Shell.
? CatMail
#\minisec{CatMail {\normalfont\sffamily von Wolfgang Wander @ H2}}
@{B}CatMail@{b} von Wolfgang Wander @@ H2
gt Texte zum Versand in die Messageverwaltung von CAT ein.
? Cat-Stat
#\minisec{Cat-Stat {\normalfont\sffamily von Timm Ganske @ F}}
@{B}Cat-Stat@{b} von Timm Ganske @@ F
Erzeugt Statistiken und Outfiles aus der CAT-Database.
? CAT-Tausch
#\minisec{CAT-Tausch {\normalfont\sffamily von Markus Kohm @ KA2}}
@{B}CAT-Tausch@{b} von Markus Kohm @@ KA2
Dieses Programm automatisiert den Aufruf von Mailer (z.B. CAT), Packer
und Terminalprogramm auch f
r mehrere User (ein Tausch!), auf Wunsch
zeitgesteuert. Das Programm erm
glicht u.a. den gepackten Tausch, auch
wenn der Speicher nicht reicht, damit CAT den Wunschpacker aufrufen
kann.
? MSORT
#\minisec{MSORT {\normalfont\sffamily von Andreas Frank @ S}}
@{B}MSORT@{b} von Andreas Frank @@ S
Sortiert die CAT-Adre
datei nach Vor- oder Nachnamen.
? TAUDOKU
? tau_doku.hyp
#\minisec{TAUDOKU {\normalfont\sffamily von Uwe Ohse @ DU}}
@{B}TAUDOKU@{b} von Uwe Ohse @@ DU3
Dokumentation des MausTauschs. In verschiedenen Formaten verf
gbar.